【问题标题】:Flutter-Getx: RxList<ModelA> modelA = <ModelA>[].obs; OBX() not catching the valueFlutter-Getx:RxList<ModelA> modelA = <ModelA>[].obs; OBX() 没有捕捉到值
【发布时间】:2022-12-09 11:13:19
【问题描述】:

我有两个 RxList 值 RxList testA = [].obs; RxList&lt;ModelA&gt; testB = &lt;ModelA&gt;[].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&lt;ModelA&gt;也可以被收听吗?或者,我是否必须只使用 RxList 然后使用 as 来分配类型?

【问题讨论】:

    标签: flutter-getx


    【解决方案1】:

    您可以使用final testB = &lt;ModelA&gt;[].obs,使用testB.add(incomingData)添加一个值并使用

    Obx(() {
          return Container(child: Text(controller.testB[0].name));
     })
    

    访问索引 0 的值。

    但我认为您没有更新索引 0 的值。相反,您正在添加到现有列表,从而增加索引。

    您可以使用.assgin(incomingData) 来代替。

    【讨论】:

      【解决方案2】:

      对于像你的ModelA这样的自定义类,除非你refresh()那个Rx&lt;ModelA&gt;,否则Obx小部件将不会更新

      您将需要像这样手动刷新它:

      testB.refresh();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-05
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多