我在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);
)
错误-
在处理手势时抛出了以下断言:在中找不到路由RouteSettings("chat",null(的生成器_自定义选项卡查看状态。按以下顺序搜索路线的生成器:
- 对于"/"路线;构建器";如果不是null,则使用属性
- 否则;"路线";如果表中有路由条目,则使用该表
- 否则,将调用onGenerateRoute。它应该为未由"处理的任何有效路由返回一个非空值;构建器";以及";路线">
- 最后,如果所有其他操作都失败,则调用UnknownRoute。很遗憾,未设置onUnknownRoute
当抛出异常时,这是堆栈:#0 _自定义选项卡视图状态_未知路线。
p.S.-对于类似的错误,我经历了这个和这个,但我没有找到解释,这就是为什么当所有语义都正确时,它不起作用
使用CuptinoTabBar的CuptinoTabView中的路由或onGenerateRoutes属性,并在此处传递您的路由或onGenerateRoades参数。