Closure call with mismatched arguments: function ‘routes.<anonymous closure>‘

Closure call with mismatched arguments: function ‘routes.’

今天在玩flutter的时候,发现了个问题,以此记录一下:
在学习路由跳转的时候,将路由提取出来,然后在MaterialApp里边配置onGenerateRoute的时候:

 
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, // 去掉debug图标
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      // home: const Tabs(title: 'Flutter Demo Home Page'),
      initialRoute: "/", // 配置默认路由
      onGenerateRoute: onGenerateRoute,
    );
  }

提取出来的route:

var onGenerateRoute = (RouteSettings settings) {
  // 统一处理路由
  final String? name = settings.name;
  final Function? pageContentBuilder = routes[name];

  if (pageContentBuilder != null) {
    if (settings.arguments != null) {
      Route route = MaterialPageRoute(
          builder: (context) =>
              pageContentBuilder(context, arguments: settings.arguments));
      return route;
    } else {
      Route route =
          MaterialPageRoute(builder: (context) => pageContentBuilder(context));
      return route;
    }
  }
  return null;
};

乍一看,没啥问题啊,可是一运行就有问题了:

======== Exception caught by widgets library =======================================================
The following NoSuchMethodError was thrown building Builder(dirty):
Closure call with mismatched arguments: function 'routes.<anonymous closure>'
Receiver: Closure: (dynamic, {dynamic argumnets}) => FormPage
Tried calling: routes.<anonymous closure>(Instance of 'StatelessElement', arguments: _LinkedHashMap len:2)
Found: routes.<anonymous closure>(dynamic, {dynamic argumnets}) => FormPage

参数不匹配,我也是纳闷了,这和老师写的一样啊,找了半个小时,终于找到了问题:
我特么眼瞎啊
我特么眼瞎啊
我特么眼瞎啊

注意单词,是不是写错了

注意单词,是不是写错了

注意单词,是不是写错了

我就是arguments这个单词写错了…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值