FutureProvider 的用例

Use case for FutureProvider

我想知道 FutureProvider class 有什么用例?

我特别感兴趣如何在 ui 是 built 和 FutureProviderChangeNotifierProvider 或任何类似的东西。

此外,每次调用 notifyListeners() 时,我都希望该提供程序通过异步调用重新 uild ui。提供者有任何可能的方式吗?还是我遗漏了什么?

FutureProvider 没有内置更新机制 – 但可以与 Consumer 和可变对象(ChangeNotiferState)结合使用处理更新。

它有两个主要用途:

  • 公开需要异步加载的"immutable value"(例如配置文件):
FutureProvider<MyConfig>(
  builder: (_) async {
    final json = await // TODO load json from something;
    return MyConfig.fromJson(json); 
  }
)
  • 或者,它可以与可以变异的东西(比如 ChangeNotifier)结合,将 Future 转换成更容易操作的东西:
ChangeNotifierProvider(
  builder: (_) => Foo(),
  child: Consumer<Foo>(
    builder: (_, foo, __) {
      return FutureProvider.value(
        value: foo.someFuture,
        child: ...,
      );
    },
  ),
);