Flutter-Getx: RxList<ModelA> modelA = <ModelA>[].obs;OBX() 未捕获值



我有两个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();

最新更新