【问题标题】:flutter refresh obs list of classes after changing data in it更改其中的数据后颤动刷新obs类列表
【发布时间】:2021-11-09 09:30:06
【问题描述】:

我创建了一个列表并通过使用 getx obs 使其可观察

var msgChat = List.filled(1, UserMessagesModel(), growable: true).obs; 

如果我追加或添加一个新的,它会在 UI 中自动更新,但我的问题是,如果我在列表的类中使用单个值,它不会得到更新,直到我第二次这样做更新前的时间

socket.on("msg_delivered", (del) {
    OfflineDatabaseManager.instance.updateMsgReadData(del).then((value) {
      uController.msgChat.forEach((el) {
        if (el.msgId == del) {
          print(el.msgId);
          el.isRead = 'true';
        }
      });
    });
  });

我的列表视图是使用 Obx 小部件包装的,这使它可以工作,但如果列表类中的单个值发生更改,它不会更新请有没有办法像刷新列表或列表视图一样,我也可以'不要使用setState(() {});,因为它不在Statefulbuilder 中,而是在扩展至getx 的类中

class SocketHandler extends GetxController {}

请问我该如何解决这个问题。谢谢。另外,如果您需要更多解释,请告诉我解释

【问题讨论】:

    标签: flutter dart listview state-management flutter-getx


    【解决方案1】:

    你可以在你的 observable 上使用这样的刷新方法,在改变值之后:

    msgChat.refresh()
    

    如果这不起作用,可能是因为您没有正确使用Obs

    如果问题仍然存在,请分享 Obs 部分,以便我提供帮助

    【讨论】:

      猜你喜欢
      • 2016-09-25
      • 2022-01-08
      • 2022-07-07
      • 2021-04-13
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多