Riverpod提供一次获取异步调用



我正在使用Riverpod 2提供商从未来提供商获取值,如下所示。

@riverpod
Future<AppUser> fetchCurrentUser(FetchCurrentUserRef ref) async {
// usersRef is the Firebase ODM refence here
final ref = await usersRef.doc(FirebaseAuth.instance.currentUser!.uid).get();
return ref.data!;
}

我使用上面的提供程序,使用ref.watch(fetchCurrentUserProvider).when()在UI中显示。一切正常。

我明白这些值将被缓存以备下次使用。

我要找的是避免异步when()每次消费时。我怎样才能使最初的未来调用只发生一次,这样我就可以使用ref而不用担心异步性质。

我仍然想使用Riverpod进行状态管理,但要避免处理加载、错误和未来提供商的when动作。

当我想使用它时,我将直接获得值,如ref.watch(fetchCurrentUserProvider).avatar_url

你不应该在任何地方使用when。在你使用结果的任何地方,都有一个变化它处于加载或错误状态。所以你应该处理这些

如果你绝对确定你的未来已经解决,你可以做ref.watch(provider).requireValue.whatever

相关内容

  • 没有找到相关文章