在 _MaterialAppState 中找不到路由 "home-page" 的生成器
Could not find a generator for route "home-page" in the _MaterialAppState
当我尝试在 flutter 应用程序中从一个视图导航到另一个视图时出现异常。
I/flutter ( 2199): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter ( 2199): The following assertion was thrown while handling a gesture:
I/flutter ( 2199): Could not find a generator for route "home-page" in the _MaterialAppState.
使用
Navigator.push(context, new MaterialPageRoute(
builder: (context) =>
new MyHomePage())
);
而不是
Navigator.of(context).pushNamed('/home-page');
//or
Navigator.pushedName(context, '/home-page');
错误说,Could not find a generator for route "home-page" in the _MaterialAppState.
。当您使用 NamedRoute
(从错误消息推断)时,我认为问题出在 route 设置上。路由设置参考示例,
MaterialApp(
title: 'Named Routes Demo',
initialRoute: '/',
routes: { //route setting
'/': (context) => FirstScreen(),
'/home-page': (context) => HomePage(), //you should have something like this.
},
)
试一试
Navigator.push(context, new MaterialPageRoute(builder: (context) =>new PageName())
此消息告诉您,在路线列表中,您搜索的路线未列出。因此,请检查您的 MaterialApp->routes 中是否有您指定的路线。
您需要在特定的 dart 文件中定义要跳转到下一屏幕的路径。例如,在您的情况下,有三个屏幕:
1. mainScreen.dart
2.loginScreen.dart
3.TabScreen.dart
现在您可能已经在 mainscreen.dart 中为 Loginscreen 和 TabScreen 定义了路由,例如:
routes : <String, WidgetBuilder>{
'/login' : (BuildContext context)=> LoginScreen()
'/tab' : (BuildContext context)=> TabScreen()
}
并且您正尝试从 LoginScreen 跳转到 TabScreen,但您尚未在 LoginScreen.dart
中定义 TabScreen 的路由
请确保您已经在 LoginScreen 中为 TabScreen 定义了路由:
routes : <String, WidgetBuilder>{
'/tab' : (BuildContext context)=> TabScreen()
}
当我尝试在 flutter 应用程序中从一个视图导航到另一个视图时出现异常。
I/flutter ( 2199): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter ( 2199): The following assertion was thrown while handling a gesture:
I/flutter ( 2199): Could not find a generator for route "home-page" in the _MaterialAppState.
使用
Navigator.push(context, new MaterialPageRoute(
builder: (context) =>
new MyHomePage())
);
而不是
Navigator.of(context).pushNamed('/home-page');
//or
Navigator.pushedName(context, '/home-page');
错误说,Could not find a generator for route "home-page" in the _MaterialAppState.
。当您使用 NamedRoute
(从错误消息推断)时,我认为问题出在 route 设置上。路由设置参考示例,
MaterialApp(
title: 'Named Routes Demo',
initialRoute: '/',
routes: { //route setting
'/': (context) => FirstScreen(),
'/home-page': (context) => HomePage(), //you should have something like this.
},
)
试一试
Navigator.push(context, new MaterialPageRoute(builder: (context) =>new PageName())
此消息告诉您,在路线列表中,您搜索的路线未列出。因此,请检查您的 MaterialApp->routes 中是否有您指定的路线。
您需要在特定的 dart 文件中定义要跳转到下一屏幕的路径。例如,在您的情况下,有三个屏幕: 1. mainScreen.dart 2.loginScreen.dart 3.TabScreen.dart
现在您可能已经在 mainscreen.dart 中为 Loginscreen 和 TabScreen 定义了路由,例如:
routes : <String, WidgetBuilder>{
'/login' : (BuildContext context)=> LoginScreen()
'/tab' : (BuildContext context)=> TabScreen()
}
并且您正尝试从 LoginScreen 跳转到 TabScreen,但您尚未在 LoginScreen.dart
中定义 TabScreen 的路由请确保您已经在 LoginScreen 中为 TabScreen 定义了路由:
routes : <String, WidgetBuilder>{
'/tab' : (BuildContext context)=> TabScreen()
}