Closure call with mismatched arguments: function ‘new MyApp_BottomNavigationBarLearn.<anonymous clos

今天学习路由跳转传值时突然报错:
请添加图片描述
怎么找也不知道哪里错了,运行也没错,一点跳转就不行:

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),

记录一下

猜你喜欢

转载自blog.csdn.net/weixin_46136019/article/details/129637307