如何在Flutter中使模型场可观察

jjhzyzn0  于 2023-05-29  发布在  Flutter
关注(0)|答案(2)|浏览(112)

我有一个名为category的模型,它有两个字段,User有一个类别列表和要更新的类别名称,对于状态管理使用getx

class Category {
 
 String? categoryName;
 bool status;
 
 Category(this.categoryName,this.status);
}

我有一个名为catList的可观察列表,它用于List小部件

var catList = <Category>[].obs;

当我更新类别字段时,它不会更新

catList[index].categoryName = categoryChangedName.value;

但是如果我更新了object中的项,然后将对象分配给catList,那么它就改变了

catList[index] = Category(categoryChangedName.value, catList[index].status );

我的问题是如何使模型场可观察,如果我们有更多的场变化,那么这是不正确的方式。

i1icjdpr

i1icjdpr1#

从GetX文档开始,你需要使用方法和调用update()来更新值;自定义对象中的方法!
例如:

class Controller extends GetxController {
  int counter = 0;
  void increment() {
    counter++;
    update(); // look here!
  }
}

您的用例可能像....

class Category {
 
   String? categoryName;
   bool status;
 
   Category(this.categoryName,this.status);
   
   void updateCategoryName(name){
     this.categoryName = name;
     update();
   }
  }

  //Use like..

 catList[index].updateCaetgoryName = categoryChangedName.value;
pkmbmrz7

pkmbmrz72#

只需使用***refresh()***方法在修改其字段后更新对象,如下所示:

catList[index].categoryName = categoryChangedName.value;
catList[index].refresh();

相关问题