Flutter状态管理,从外部小部件树触发状态更改



我有以下组件:

  1. DataModel(一个包含一些变量的类(,在我的例子中是singleton
  2. 几个屏幕,反映此DataModel
  3. 更新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,因为我需要包括一个上下文(在这种情况下,这实际上是不相关的(来更新我的数据模型,比如:

Provider.of<DataModel>(context).onUpdate(myDataModel)

实现此任务的最简单方法是什么(更新DataModel->触发UI更新(?

您检查了Riverpod包吗。Riverpod来自Provider的创建者,可以被视为对Provider的重写,以进行不可能的改进。Riverpod不依赖Flutter,因此它可以在没有BuildContext的情况下监听提供商。

相关内容

最新更新