【发布时间】:2021-03-14 16:07:51
【问题描述】:
我有以下组件:
- DataModel(一个包含一些变量的类),在我的例子中是一个单例
- 反映此 DataModel 的几个屏幕
- 更新 DataModel 的几个触发器,其中两个是非 UI:来自 HTTP 调用的响应和来自 WebSocket 的数据
我正在尝试在 Flutter 中实现以下流程: 监听来自 HTTP 响应 / WebSocket 的数据 -> 更新 DataModel(状态改变) -> 更新 UI
我已经阅读了有关状态管理的不同方法 (https://flutter.dev/docs/development/data-and-backend/state-mgmt/options),并尝试了其中的一些方法(例如 Provider)。 我的主要问题是我无法弄清楚如何从非 UI 组件(如 HTTP 响应/WebSocket)更新我的 DataModel,因为我需要包含一个上下文(在这种情况下这真的无关紧要)才能更新我的DataModel,类似这样的:
Provider.of<DataModel>(context).onUpdate(myDataModel)
完成此任务的最简单方法是什么(更新 DataModel -> 触发 UI 更新)?
【问题讨论】: