今天学习路由跳转传值时突然报错:
怎么找也不知道哪里错了,运行也没错,一点跳转就不行:
class MyApp_BottomNavigationBarLearn extends StatelessWidget {
final routes = {
'/form': (context) => FormPage(),
'/search': (context, arguments) => SearchPage(arguments:arguments),
};
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Tabs(),
// routes: {
// '/form':(context)=>FormPage(),
// '/search':(context)=>SearchPage(),
// },
onGenerateRoute: (RouteSettings settings) {
// 统一处理
final String? name = settings.name;
final Function? pageContentBuilder = this.routes[name];
if (pageContentBuilder != null) {
if (settings.arguments != null) {
final Route route = MaterialPageRoute(
builder: (context) => pageContentBuilder(context,
arguments: settings.arguments));
return route;
} else {
final Route route = MaterialPageRoute(
builder: (context) => pageContentBuilder(context));
return route;
}
}
});
}
}
后来总算找到,因为我这里是这样写的:
'/search': (context, arguments) => SearchPage(arguments:arguments),
把arguments放到{}中就OK了
'/search': (context, {arguments}) => SearchPage(arguments:arguments),
记录一下