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
相关产品推荐
相关产品推荐

