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

Flutter Radio组件onChanged报错:Object?类型无法赋值给int参数

报错原因

Flutter的Radio组件属于泛型类Radio<T>,未显式指定泛型的场景下,onChanged回调默认返回Object?类型的可空值,和你自定义的_radioOnChanged方法要求的非空int入参类型不匹配,因此触发类型赋值报错。

解决方案

两种可直接落地的修改方式,任选其一即可:

  • 方案1:显式指定Radio泛型+非空处理
    给所有Radio组件声明int泛型,同时明确回调参数的类型为可空int,调用方法时做非空断言(Radio触发onChanged回调时参数必然有值,非空断言安全):
Radio<int>(
  value: 0,
  groupValue: _radioGroupValue,
  onChanged: (int? index) => _radioOnChanged(index!),
),
// 其余两个Radio组件做完全相同的修改即可
  • 方案2:传参时直接做类型强转
    如果不想改动Radio的泛型定义,也可以在传参时对回调返回的Object?值做类型转换:
onChanged: (index) => _radioOnChanged(index as int),

你所有Radio的value都固定为int类型,上述两种方案都不会出现运行时异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:57:03