flutter - StreamProvider.value 多次返回相同的值:Flutter
问题描述
StreamProvider.value 使用相同的值多次构建小部件。
StreamProvider<FirebaseUser>.value(
value: FirebaseAuth.instance.onAuthStateChanged, child:MyWidget);
class MyWidget extends StatelessWidget{
@override
Widget build(BuildContext context){
return Consumer<FirebaseUser>(
builder: (context, _user, _) {
if(_user!=null){
print(_user.uid);
return Container(Text(_user.uid));
}
else return Container();
}
}
输出:
颤振:RlKE7123WKSLKP9AgLCFgY40Wx1
颤振:RlKE7123WKSLKP9AgLCFgY40Wx1
尝试使用选择器而不是消费者,但最终结果相同,但不确定我是否正确使用它。你能帮我解决这个问题吗?
解决方案
为什么不使用StreamBuilder?
StreamBuilder<FirebaseUser>(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.hasError) {
return Text("Error!");
} if (snapshot.hasData) {
return Text(snapshot.data.uid);
} else {
return Text("waiting for data ...");
}
},
);
推荐阅读
- python - 如何在两个单独的行上扩展对象 dtype
- list - 如何知道二维列表包含颤动中的另一个列表
- sql - 如何检查给定日期范围内的帐户余额是否有变化
- xamarin - Xamarin Forms Android Paddings 未在 CollectionView 中显示
- python - 清单中的库存编号
- asp.net - 表格中未显示 VBnet 编辑/删除按钮
- powershell - 从全名获取目录,重命名目录
- angular - Angular Element - 将 Shadow DOM 设置为关闭
- r - 未渲染绘图时,Shiny 会保留空白的空白空间
- php - 自定义验证联系表格7