Я реализую навигацию в своем приложении, используя onGenerateRoute в MaterialApp.
Для одного из маршрутов я получаю эту ошибку, когда нажимаю кнопку, предоставляемую Flutter на панели приложений.
E / флаттер (22996): [ОШИБКА: флаттер / lib / ui / ui_dart_state.cc (148)]
Необработанное исключение: ошибочное утверждение: булево выражение не должно быть
пустой
E / флаттер (22996): # 0 ModalRoute.willPop
(пакет: flutter / src / widgets / rout.dart) E / flutter (22996):
E / flutter (22996): # 1 NavigatorState.maybePop
(пакет: flutter / src / widgets / navigator.dart: 1964: 57) E / flutter
(22996):
E / flutter (22996): # 2 Navigator.maybePop
(Упаковка: трепетание / SRC / виджеты / navigator.dart: 1291: 34)
E / flutter (22996): # 3 BackButton.build.
(Упаковка: трепетание / SRC / материал / back_button.dart: 91: 19)
Не могли бы вы помочь мне понять, что не так?
Настройки моего маршрута ->
Route<dynamic> routes(RouteSettings settings) {
switch (settings.name) {
case '/':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return HomePage();
},
);
break;
case '/contactlist':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return FriendsList();
},
);
break;
case '/ChatroomFormAdd':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return const ChatroomInfo(
mode: 'Add');
},
);
break;
case '/ChatroomFormEdit':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return const ChatroomInfo(
mode: 'Edit');
},
);
break;
case '/ChatroomFormView':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return const ChatroomInfo(
mode: 'View');
},
);
break;
case '/ChatroomFormApprove':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return const ChatroomInfo(
mode: 'Approve');
},
);
break;
case '/errorscreen':
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return ErrorScreen();
},
);
break;
default:
return MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return ChatDetail(chatroomID: chatroomID);
},
);
break;
}
}
Кнопка «Назад» работает для всех ожидаемых маршрутов, когда я возвращаюсь со следующего маршрута:
Navigator.of(context).pushNamed('/ChatroomFormView');