Flutter 颤振Riverpod替代a_供应商。何时
寻找替代方案Flutter 颤振Riverpod替代a_供应商。何时,flutter,provider,riverpod,Flutter,Provider,Riverpod,寻找替代方案 @override Widget build(BuildContext context) { final _user = useProvider(MyUserProvider); ... return _user.when(data: data, loading: loading, error: error) 对于我的大多数组件 我想用像这样的东西 final _user = useProvider(MyUserProvider); // then r
@override
Widget build(BuildContext context) {
final _user = useProvider(MyUserProvider);
...
return _user.when(data: data, loading: loading, error: error)
对于我的大多数组件
我想用像这样的东西
final _user = useProvider(MyUserProvider);
// then
return Text(_user.name)
直接原因是firebase用户数据流已经在树中,并且不能为null或有错误
您可以创建一个新的提供者,该提供者将依赖于以下先例:
final connectedUserProvider = Provider<User>((ref) {
final userState = ref.watch(MyUserProvider.state);
return userState.maybeWhen(data: (User user) => user, orElse: () => throw "you should not be there");
});
final connectedUserProvider=提供程序((ref){
final userState=ref.watch(MyUserProvider.state);
返回userState.maybeawhen(数据:(用户)=>User,或lse:()=>throw“you should not there”);
});
您可以创建一个新的提供者,该提供者将依赖于以下先例:
final connectedUserProvider = Provider<User>((ref) {
final userState = ref.watch(MyUserProvider.state);
return userState.maybeWhen(data: (User user) => user, orElse: () => throw "you should not be there");
});
final connectedUserProvider=提供程序((ref){
final userState=ref.watch(MyUserProvider.state);
返回userState.maybeawhen(数据:(用户)=>User,或lse:()=>throw“you should not there”);
});
类似的东西可能适合您:
final authStream=StreamProvider((ref)=>ref.watch(FirebaseAuth.instance.authStateChanges());
最终用户=提供者((ref)=>ref.watch(authStream.data?.value);
然后:
final\u user=useProvider(用户);
返回文本(_user?.name???);
//或者如果您确定该值不为null,或者您的应用程序依赖于该值不为null
返回文本(\u user!.name);
类似的东西可能适合您:
final authStream=StreamProvider((ref)=>ref.watch(FirebaseAuth.instance.authStateChanges());
最终用户=提供者((ref)=>ref.watch(authStream.data?.value);
然后:
final\u user=useProvider(用户);
返回文本(_user?.name???);
//或者如果您确定该值不为null,或者您的应用程序依赖于该值不为null
返回文本(\u user!.name);
MyUserProvider
是一个StreamProvider
。如何插入它?并且仍然可以获得更新MyUserProvider
是一个StreamProvider
。如何将其插入?并且仍然可以获得更新