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
相关产品推荐
相关产品推荐

