flutter - 更改其中的数据后颤动刷新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 {}
请问我该如何解决这个问题。谢谢。另外,如果您需要更多解释,请告诉我解释
解决方案
更改值后,您可以在 observable 上使用这样的刷新方法:
msgChat.refresh()
如果这不起作用,可能是因为您没有Obs
正确使用
如果问题仍然存在,请分享 Obs 部分,以便我提供帮助
推荐阅读
- javascript - 合并两个代码片段会导致错误
- javascript - React 应用程序中 JS 中的输入条目的值未更新
- amazon-dynamodb - 带有嵌套对象的 AppSync GraphQL 查询
- go - 如何正确地将 json 字符串转换为对象
- karate - 如何在空手道框架中检查数组的长度?
- java - 我们可以创建一个在 Java 中定义 main 函数的类的对象吗?
- angular - 如何在导入装饰器中使用服务进行角度模块配置?
- python - 使用beautifulsoup按行名刮取表格元素
- java - 如何在基于 Maven 的 Java Web 应用程序中使用 Favicon?
- reactjs - ReactJS:setState 无法在 Syncfusion React Toast 中工作