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

Flutter报错:参数类型‘Null’无法分配给参数类型‘Key’求解

解决Flutter中"The argument type 'Null' can't be assigned to the parameter type 'Key'"报错

问题原因

你定义的ChangePassword组件构造函数中,key被声明为必填的非空类型(required Key key),但调用时传入了key: null,非空类型不接受null值,因此触发报错。

解决方法

根据你的需求选择以下两种处理方式:

方式1:不需要使用Key时,修改组件构造函数

将key改为可选的可空参数,调用时可直接省略key传参:

class ChangePassword extends StatefulWidget {
  List value;
  // 将Key改为可空且可选的参数
  ChangePassword({Key? key, required this.value}) : super(key: key);
  @override
  State<ChangePassword> createState() => _ChangePasswordState();
}

调用代码简化为:

Navigator.of(context).push(MaterialPageRoute(
  builder: (context) => ChangePassword(value: value),
));

方式2:需要使用Key时,传入合法的Key实例

如果业务场景需要用到Key(比如控制组件状态、查找组件),传入有效的Key对象,例如UniqueKey():

Navigator.of(context).push(MaterialPageRoute(
  builder: (context) => ChangePassword(
    value: value, 
    key: UniqueKey(), // 生成唯一的Key实例
  ),
));

内容的提问来源于stack exchange,提问作者Abu Ihsan Tono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:52:04