首页 > 解决方案 > 更改其中的数据后颤动刷新obs类列表

问题描述

我创建了一个列表并通过使用 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(() {});,因为an 不在 a 内,Statefulbuilder而是在一个延伸到 getx 的类中

class SocketHandler extends GetxController {}

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

标签: flutterdartlistviewstate-managementflutter-getx

解决方案


更改值后,您可以在 observable 上使用这样的刷新方法:

msgChat.refresh()

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

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


推荐阅读