我有两个RxList值RxList testA = [].obs;
RxList<ModelA> testB = <ModelA>[].obs
在我用
测试了两者之后testA().add(incomingData);
testB().add(incomingData);
Obx(() {
return Container(child: Text(controller.testA()[0].name))
})
Obx(() {
return Container(child: Text(controller.testB()[0].name))
})
只有testA
被更新。有没有办法让RxList
和<ModelA>
也能听?或者,我必须只使用RxList
然后用as
分配类型?
您可以使用final testB = <ModelA>[].obs
,使用testB.add(incomingData)
添加值,并使用
Obx(() {
return Container(child: Text(controller.testB[0].name));
})
访问索引0的值。
但是我认为你没有更新索引0的值。相反,您将添加到现有列表中,从而增加索引。
可以用.assgin(incomingData)
代替
对于像ModelA
这样的自定义类,Obx
小部件将不会得到更新,除非您refresh()
Rx<ModelA>
你需要手动刷新它,像这样:
testB.refresh();