我正在使用Flutter和Node制作一个小应用程序。
我正在尝试使用streamController处理我的应用程序中的身份验证状态。 我的builderPage将验证应用程序的状态并返回loginPage或menuPage:
class BuilderPage extends StatelessWidget {
// ignore: close_sinks
final StreamController<AuthenticationState> _streamController = StreamController<AuthenticationState>();
Widget buildUi(BuildContext context, AuthenticationState s) {
print(s.authenticated);
if (s.authenticated) {
return MenuPage(_streamController);
} else {
return LoginPage(_streamController);
}
}
@override
Widget build(BuildContext context) {
return StreamBuilder<AuthenticationState>(
stream: _streamController.stream,
initialData: AuthenticationState.initial(),
builder: (BuildContext context,
AsyncSnapshot<AuthenticationState> snapshot) {
final state = snapshot.data;
return buildUi(context, state);
});
}
}
当我在应用程序中对自己进行身份验证时,我的authState变为“ true”。它正在工作,我要进入菜单页面,但是当我尝试与应用程序断开连接时,我的问题就成了了。我的streamController不会重建我的应用程序,也不会带我到LoginPage。
signOut() {
_streamController.add(AuthenticationState.signedOut());
}
如何在我的应用中使用streamController处理我的authState?