我有一个监听用户登录/注销状态的StreamBuilder。
当我成功登录时,LandingScreen StreamBuilder会返回一个黑屏。但是,如果我热重启,只要我登录,它就会加载正确的Scaffold..As,并打印该UID。但是当涉及到返回(测试)脚手架时,它总是一个黑屏。
我不明白为什么在从登录到这里的过渡之后,它是黑色的,但当我热重启时,它就会按它应该的方式加载。
编辑*我正在IPhone 12最大仿真器上运行此程序。
class LandingScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final auth = Provider.of<AuthBase>(context, listen: false);
return StreamBuilder<CurrentUser>(
stream: auth.onAuthStateChanged,
builder: (context, dataSnapShot) {
print(dataSnapShot.connectionState);
if (dataSnapShot.connectionState == ConnectionState.active) {
CurrentUser user = dataSnapShot.data;
if (user == null) return LoginScreen();
print(user.uid);
return SafeArea(
child: Scaffold(
body: Column(
children: [
Center(
child: FlatButton(
onPressed: () {
auth.signOut();
},
child: Text('SIGN OUT HERE'),
),
),
],
),
),
);
// return DashboardScreen();
} else {
return Scaffold(
appBar: AppBar(
title: Text('data'),
),
body: Center(
child: CircularProgressIndicator(),
),
);
}
},
);
}
}发布于 2020-11-24 19:36:52
也许您应该将此小部件转换为StateFull小部件!
https://stackoverflow.com/questions/64985496
复制相似问题