【问题标题】:Flutter + Provider + Sqflite: Aggregated data state managementFlutter + Provider + Sqflite:聚合数据状态管理
【发布时间】:2021-05-30 11:14:03
【问题描述】:
背景
假设我有 30 个 sqlite db 实体及其对应的各个 dart 类模型。其中,许多被聚合并显示在应用程序的几个小部件中。 CRUD 操作应重新运行相应的聚合并更新使用数据的相应 ui/widget。
当前状态
今天我每次构建小部件时都会从数据库中读取数据。
需要
如何在不为每个实体和聚合视图创建一个提供程序的情况下为聚合以及实体提供通用提供程序/侦听器?它应该能够解析要更新的小部件。
我想要一个状态管理层,有一个依赖树,而不是每次构建小部件时都从数据库中读取。
【问题讨论】:
标签:
flutter
provider
sqflite
【解决方案1】:
我的理解是您希望使用提供程序包进行状态管理,但您不想创建扩展 ChangeNotifier 的类型来管理您的数据模型。
您必须扩展 ChnageNotifier 才能在需要更新 UI 时调用 notifyListeners。因此,至少创建一种扩展 ChangeNotifier 的类型,并让它管理您的所有数据对象。一般来说,这并不好,因为没有理由不为每个模型创建一个类型。