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

使用Navigator.pushNamed传递参数失败:RouteSettings类型转换错误

解决Navigator.pushNamed参数传递的类型转换错误

错误根源是你直接把RouteSettings对象转成了String,而不是提取其中的arguments属性——这才是你跳转时传入的ProductModelsvar.id值。

修正后的接收参数代码:

final productProviders = Provider.of<productProvider>(context);
// 提取settings中的arguments属性,再转成String
final productId = ModalRoute.of(context)!.settings.arguments as String;
final getCurrentProduct = productProviders.findProductById(productId);

额外建议(可选):

如果ProductModelsvar.id可能为null,或者担心传递时未传入参数,可以增加空安全处理:

final productId = ModalRoute.of(context)!.settings.arguments as String?;
if (productId != null) {
  final getCurrentProduct = productProviders.findProductById(productId);
  // 后续逻辑
} else {
  // 处理参数为空的情况,比如弹出提示或返回上一页
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:01:06