Flutter/Riverpod -如何合并获取数据列表和将数据列表作为状态保存的提供程序?

aurhwmvo  于 2022-12-19  发布在  Flutter
关注(0)|答案(1)|浏览(164)

我一直在使用RiverPod2.0状态管理包,以了解如何将其用于CRUD类型的操作
我不明白的是如何使用供应商的范围来支持..

  • 在列表视图(即FutureProvider)中显示数据对象列表之前,异步加载数据对象列表
  • 在提供者中维护数据对象列表,以支持CRUD用例,即StateNotifierProvider。

在我的Flutter列表视图中,我从StateNotifierProvider阅读数据,而不是FutureProvider。
在这种情况下,您似乎需要两个不同的供应商,对吗?
目前,我正在使用FutureProvider加载数据列表,并在此FutureProvider中将数据推送到StateNotifierProvider中,这是正确的方法吗?

waxmsbnn

waxmsbnn1#

新的方法是使用AsyncNotifier异步地从数据库或服务器读取数据,您可以阅读一篇关于这个主题的好文章:
How to use Notifier and AsyncNotifier
另一方面,旧的方法是使用StateNotifierAsync状态,类似于:

final dataProvider = StateNotifierProvider<MarketNotifier, AsyncValue<YOURDATA>>((ref) {
  return DATANotifier();
});

class DATANotifier extends StateNotifier<AsyncValue<YOURDATA>> {
  MarketNotifier() : super(const AsyncValue.loading()) {
    _init();
  }

  Future<void> _init() async {
    state = await AsyncValue.guard(() => LocalStorage().getData());
  }

  // Post your CRUD methods for working with data here
}

FutureProviderStateProvider的异步版本,因为它不作为存储和处理大型逻辑的地方。

相关问题