Flutter向组件传递参数失败:类型转换错误求助
问题解决:Flutter路由传参类型不匹配错误
错误原因
你传递参数时写的{'file','test'}是Set集合,但接收时强制转换成了Map<String,String>,类型不匹配导致_CastError。
修复步骤
1. 修正发送参数的代码
把Set格式改成Map键值对格式:
onTap: () => Navigator.of(context).pushNamed(ImageDisplay.routeName, arguments: {'file': 'test'}),
2. 接收参数代码保持不变(确认参数为Map类型时)
final Map<String,String> args = ModalRoute.of(context)!.settings.arguments as Map<String,String>;
补充说明
官方文档中路由传参的正确方式是传递键值对形式的Map(或自定义对象),需保证发送与接收的参数类型完全一致。如果需要传递多个参数,同样采用Map键值对结构,示例:
arguments: {'key1': 'value1', 'key2': 'value2'}
内容的提问来源于stack exchange,提问作者OptimusPrime
相关产品推荐
相关产品推荐

