我有一组我在 中定义的路由,routes.dart
这些路由在main.dart
文件中链接如下。
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<ConnectivityStatus>(
create: (_) => ConnectionService().connectionStatusController.stream,
),
...
ChangeNotifierProvider<AuthNotifier>(
create: (_) => AuthNotifier(),
),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
routes: Routes.routes,
home: SplashScreen(),
),
);
}
Routes.dart
文件:
class Routes {
Routes._();
static const chat = '/chat';
static final routes = <String, WidgetBuilder>{
chat: (BuildContext ctx) => CircleChat(),
};
}
我有一个触发上述路线但抛出错误的按钮。
FlatButton(
Navigator.of(context).pushReplacementNamed(Routes.chat);
)
错误 -
处理手势时引发以下断言:在 _CustomTabViewState 中找不到路由 RouteSettings("chat", null) 的生成器。按以下顺序搜索路线的生成器:
- 对于“/”路由,如果非空,则使用“builder”属性。
- 否则,如果“路由”表具有路由条目,则使用该表。
- 否则,调用 onGenerateRoute。它应该为“builder”和“routes”未处理的任何有效路由返回一个非空值。
- 最后,如果所有其他方法都失败,则调用 onUnknownRoute。不幸的是,未设置 onUnknownRoute。
抛出异常时,这是堆栈:#0 _CustomTabViewState._onUnknownRoute。