我想知道 FutureProvider
类存在什么用例?
我对如何在使用 Future<Contact> getAllContacts() async { ... }
、 FutureProvider
或任何类似内容构建 ui 时加载异步函数(如 ChangeNotifierProvider
)特别感兴趣。
此外,每次调用 notifyListeners()
时,我都希望该提供程序通过异步调用重建 ui。提供者有什么可能的方式还是我遗漏了什么?
最佳答案
FutureProvider
没有内置更新机制——但可以结合 Consumer
和可变对象( ChangeNotifer
或 State
)来处理更新。
它有两个主要用途:
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: ...,
);
},
),
);