【发布时间】:2020-07-12 23:54:01
【问题描述】:
我正在尝试使用 json 对象中的字符串值更改屏幕,但我在控制台中收到以下错误并且它不会更改我的屏幕:
在 _WidgetsAppState 中找不到路由 RouteSettings(“alert”,null)的生成器。
按以下顺序搜索路线的生成器:
- 对于“/”路由,使用“home”属性(如果非空)。
- 否则,如果“路由”表有路由条目,则使用它。
- 否则,将调用 onGenerateRoute。对于任何未被“home”和“routes”处理的有效路由,它应该返回一个非空值。
- 最后,如果所有其他方法都失败,则调用 onUnknownRoute。
很遗憾,onUnknownRoute 没有设置。
当异常被抛出时,这是堆栈
这是我的主页,该方法一直有效,直到 Navigator.pushNamed(context, opt['ruta']);:
List<Widget> _listItems(List<dynamic> data, BuildContext context) {
final List<Widget> options = [];
data.forEach((opt){
final widgetTemp = ListTile(
title: Text(opt['texto']),
leading: getIcon(opt['icon']),
trailing: Icon(Icons.keyboard_arrow_right, color: Colors.blue,),
onTap: (){
print("Hello");
Navigator.pushNamed(context, opt['ruta']);
},
);
options..add(widgetTemp)
..add(Divider());
});
return options;
}
这是我的 main.dart,我有路线:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Components App',
debugShowCheckedModeBanner: false,
initialRoute: '/',
routes: <String, WidgetBuilder>{
'/' : (BuildContext context) => HomePage(),
'/alert' : (BuildContext context) => AlertPage(),
'/avatar' : (BuildContext context) => AvatarPage(),
},
onGenerateRoute: (settings){
print("Ruta llamada: ${settings.name }");
},
);
}
}
【问题讨论】: