routes - 从 Navigator 到 MaterialApp 的 routeSettings 颤动
问题描述
有什么方法可以从 Navigator 类(超级...超级子)访问 MaterialApp 吗?
child: Navigator(
onGenerateRoute: (RouteSettings settings){
print('settings ${settings.name}');
if(settings.name == '/'){
return MaterialPageRoute(
builder: (_) => _page(index),
settings: settings
);
}
else if(settings.name == '/blog_details'){
return CustomRoute<bool>(
builder: (BuildContext context) => BlogDetailsPage(widget.model)
);
}
},
),
从上面的代码到下面
child: MaterialApp(
debugShowCheckedModeBanner: false,
theme: getAdaptiveThemeData(context),
routes: { /// some routes///}
onGenerateRoute: (RouteSettings settings){
if(settings.name == '/blog_details'){
return CustomRoute<bool>(
builder: (BuildContext context) => BlogDetailsPage(_model)
);
}
},
解决方案
您可以使用rootNavigator: true访问您的 MaterialApp 导航器,
FlatButton(
child: Text('Push App Route'),
onPressed: () {
Navigator.of(context, rootNavigator: true)
.pushNamed('/blog_details');
},
)
推荐阅读
- python-3.x - Python:python ast 中的 ast.FunctionType 是什么?
- python - 根据现有列中的值创建新列并合并行
- git - Git - 如果新 URL 的 git 历史记录完全不同,如何删除子模块并以相同的名称和路径再次创建它?
- python - 函数的 Sphinx 自动摘要模板在哪里?
- python - 时间序列单变量数据集的异常预测算法
- python - Python“无法分配给函数调用”
- dataframe - 无法在 Pypsark 中为 DataFrame 起别名
- python - Locust 负载测试给了我 ChunkedEncodingError
- firebase - Ionic 中的 firebase 身份验证文档
- regex - 仅在超过一定数量时才返回重复的组