You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中实例化MapEqualColorMappingPage类出现“1 positional argument(s) expected, but 0 found”错误的解决咨询

解决构造函数参数不匹配的错误

这个问题的根源是你定义的MapEqualColorMappingPage构造函数要求必须传入一个Key类型的位置参数,但在路由配置中创建实例时没有传递任何参数,所以编译器抛出了参数缺失的错误。

下面给你两种可行的解决方法:


方法1:将Key参数改为可选命名参数(推荐)

这是Flutter官方Widget最常用的写法,既保留了传递Key的能力,又允许不传参数直接创建实例。修改你的构造函数:

class MapEqualColorMappingPage extends SampleView { 
  // 把位置参数改成命名可选参数,并用?标记为可空
  const MapEqualColorMappingPage({Key? key}) : super(key: key); 

  @override 
  _MapEqualColorMappingPageState createState() => _MapEqualColorMappingPageState(); 
} 

修改后,原来的路由配置'/map': (context) => MapEqualColorMappingPage(),就可以正常运行了,同时如果你有需要,也可以通过命名参数传递Key:MapEqualColorMappingPage(key: const Key('custom-key'))。


方法2:在路由中显式传递Key参数

如果你不想修改构造函数,也可以在创建实例时直接传入一个Key值:

'/map': (context) => MapEqualColorMappingPage(const Key('map-equal-color-page')),

这种方法适合你确实需要给这个页面Widget指定唯一标识的场景,但如果没有特殊需求,方法1会更灵活简洁。

内容的提问来源于stack exchange,提问作者user17647683

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 19:42:42