Flutter - StreamBuilder 不更新 UI



StreamBuilder小部件不更新UI,我仍然总是看到包含两个按钮的ChoiceScreenLog InSign Up当我点击Sign Up时它会带我到SignUpSCreenLoginScreen几乎一样,但是当我尝试以注册用户身份登录时,除非我重新运行应用程序或进行热重启,否则StreamBuilder不会更新UI并显示ChatScreen小部件以查看更新的 UI 。

这是我尝试过的:

StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, userSnap){
print('stream builder');
// a valid token
if(userSnap.hasData){
print('valid token .. user logged in');
return ChatScreen();
}
print('not yet');
return ChoiceScreen();
},
),

逻辑似乎有效,我得到:

I/flutter ( 5194): stream builder
I/flutter ( 5194): valid token .. user logged in

但它不会返回我期待的屏幕...正如我提到的,我应该做热重启才能看到它。

我试过这个,但问题仍然存在..

任何建议或意见将不胜感激。谢谢。

我认为首先你必须初始化一个变量。 例如

StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, userSnap){
print('stream builder');
var data = usersSnap.data;

if(data.hasData){
print('valid token .. user logged in');
return ChatScreen();
}
print('not yet');
return ChoiceScreen();
},
),

最新更新