Функция сборки Flutter возвращает null
Я пытаюсь перейти на свою домашнюю страницу или страницу входа в систему на основе authStatus. При использовании Navigator.of (context) ... он возвращает null в методе сборки на секунду, а затем экран обновляется и успешно переходит на заданную страницу. Я относительно новичок в мобильной разработке и флаттере. Любые лиды помогут! Благодарю.
Вот код:
@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. Виджет-нарушение: функции сборки RootPage никогда не должны возвращать null. Чтобы вернуть пустое пространство, которое заставляет строительный виджет заполнять доступное место, верните «Container ()». Чтобы вернуть пустое пространство, занимающее как можно меньше места, верните «Контейнер (ширина: 0,0, высота: 0,0)».
Ответы
в строке кода после WidgetsBinding добавьте
return Container();
Вы также можете включить параметр цвета, соответствующий вашему дизайну.