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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:15:07