【发布时间】:2021-12-10 11:17:51
【问题描述】:
根据这里的 Flutter 文档 (https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple),
控制状态管理的一种方法是在其后代之一是 Consumer 时使用 ChangeNotifierProvider(或 InheritedWidget),当底层 ChangeNotifier 更改时会重新构建该 Consumer。 Flutter 的团队在官方 youtube Flutter 频道上重申了这种方法。
但是,这意味着某些业务逻辑元素 (ChangeNotifier) 现在是 Widget 树的一部分(否则就是关于 UI 的外观)。所以我不明白为什么这些类(ChangeNotifierProvider、InheritedWidget、Consumer)甚至存在。
特别是,为什么以下方法不是更好的:
-业务逻辑是一个单例和一个 ChangeNotifier。
-而不是 Provider(...),根据业务逻辑对每个 Widget 执行以下操作:
BusinessLogicSingleton.instance.addListener(() {
setState(() {
});
在 initState(...).
我在这里错过了什么?
【问题讨论】:
标签: flutter design-patterns flutter-change-notifier