我正在使用 MaterialApp 中的 onGenerateRoute 在我的颤振应用程序中实现导航。
对于其中一条路线,当我按下 Flutter 在 Appbar 中提供的后退按钮时出现此错误。
E/flutter (22996): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理异常:断言失败:布尔表达式不能为空
E/flutter (22996): #0 ModalRoute.willPop (package:flutter/src/widgets/routes.dart) E/flutter (22996):
E/flutter (22996): #1 NavigatorState.maybePop (package:flutter/src/widgets/navigator.dart:1964:57) E/flutter (22996):
E/flutter (22996): #2 Navigator.maybePop (package:flutter/src/widgets/navigator.dart:1291:34)
E/flutter (22996):#3 BackButton.build。(包:flutter/src/material/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');