更改其中的数据后,颤动刷新 类 的 obs 列表
flutter refresh obs list of classes after changing data in it
我创建了一个列表并通过使用 getx obs 使其可观察
var msgChat = List.filled(1, UserMessagesModel(), growable: true).obs;
如果我向它追加或添加一个新值,它会在 UI 中自动更新,但我的问题是,如果我在列表的 classes 中使用单个值,它不会直到我第二次更新之前才会更新
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 小部件包装的,这使它可以工作,但是如果列表 class 中的单个值发生更改,它不会更新,请问有没有办法喜欢刷新列表或listview 和我也不能使用 setState(() {});
因为不在 Statefulbuilder
中而是在延伸到 getx
的 class 中
class SocketHandler extends GetxController {}
请问我该如何解决这个问题。谢谢。另外,如果您需要更多解释,请告诉我解释
您可以在您的可观察对象上使用这样的刷新方法,更改值后:
msgChat.refresh()
如果这不起作用,可能是因为您没有正确使用 Obs
如果问题仍然存在,请分享 Obs 部分,以便我提供帮助
我创建了一个列表并通过使用 getx obs 使其可观察
var msgChat = List.filled(1, UserMessagesModel(), growable: true).obs;
如果我向它追加或添加一个新值,它会在 UI 中自动更新,但我的问题是,如果我在列表的 classes 中使用单个值,它不会直到我第二次更新之前才会更新
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 小部件包装的,这使它可以工作,但是如果列表 class 中的单个值发生更改,它不会更新,请问有没有办法喜欢刷新列表或listview 和我也不能使用 setState(() {});
因为不在 Statefulbuilder
中而是在延伸到 getx
class SocketHandler extends GetxController {}
请问我该如何解决这个问题。谢谢。另外,如果您需要更多解释,请告诉我解释
您可以在您的可观察对象上使用这样的刷新方法,更改值后:
msgChat.refresh()
如果这不起作用,可能是因为您没有正确使用 Obs
如果问题仍然存在,请分享 Obs 部分,以便我提供帮助