Flutter 构建函数 returns null
Flutter build function returns null
我正在尝试根据 authStatus 导航到我的主页或登录页面。使用 Navigator.of(context)... 它 return 在构建方法上一秒钟为空,然后屏幕刷新并成功导航到给定页面。我对移动开发和扑动比较陌生。任何线索都会有所帮助!谢谢
代码如下:
@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;
}
这是错误:
构建函数return为空。
有问题的小部件是:
根页面
构建函数绝不能 return null。
return 空 space 导致建筑小部件填充可用空间,return
“容器()”。要 return 空 space 占用尽可能少的空间,return
“容器(宽度:0.0,高度:0.0)”。
在 WidgetsBinding 之后的代码行中,添加
return Container();
您还可以包含一个颜色参数以匹配您的设计。
我正在尝试根据 authStatus 导航到我的主页或登录页面。使用 Navigator.of(context)... 它 return 在构建方法上一秒钟为空,然后屏幕刷新并成功导航到给定页面。我对移动开发和扑动比较陌生。任何线索都会有所帮助!谢谢
代码如下:
@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;
}
这是错误:
构建函数return为空。 有问题的小部件是: 根页面 构建函数绝不能 return null。 return 空 space 导致建筑小部件填充可用空间,return “容器()”。要 return 空 space 占用尽可能少的空间,return “容器(宽度:0.0,高度:0.0)”。
在 WidgetsBinding 之后的代码行中,添加
return Container();
您还可以包含一个颜色参数以匹配您的设计。