我想根据authStatus导航到我的主页或登录页面。使用Navigator.of(context)...时,在build方法中第一秒它返回null,然后屏幕刷新并成功导航到给定页面。我对移动开发和Flutter相对较新。任何线索都会有所帮助!谢谢。
以下是代码:
@override
Widget build(BuildContext context) {
switch (authStatus) {
case AuthStatus.NOT_LOGGED_IN:
WidgetsBinding.instance.addPostFrameCallback((_) {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => LoginSignUpPage(
auth: widget.auth,
onSignedIn: _onLoggedIn,
params: widget.params,
)),
);
}
});
break;
case AuthStatus.LOGGED_IN:
if (_userId.length > 0 && _userId != null) {
WidgetsBinding.instance.addPostFrameCallback((_) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => HomePage(
userId: _userId,
auth: widget.auth,
onSignedOut: _onSignedOut,
params: widget.params,
)),
);
});
} else
return widget.waitingScreen;
break;
default:
return widget.waitingScreen;
}
以下是错误信息:
一个构建函数返回了null。 有问题的widget是: RootPage 构建函数绝不能返回null。 如果要返回一个空间,使得构建的widget填充可用的空间,请返回"Container()"。 如果要返回一个尽可能占据尽量少空间的空间,请返回"Container(width: 0.0, height: 0.0)"。