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

Flutter运行报错:不可空类型Key无法赋值null该如何解决?

报错触发原因

这个报错是Flutter空安全机制触发的类型不匹配问题:
你在定义MainPage组件的构造函数时,将key参数标记为了required且类型为不可空的Key,意味着实例化MainPage时必须传入非空的Key值。但你在MaterialApp的home属性中实例化MainPage时,只传了title参数,没有传入key,此时会默认给key赋值null,null不能赋值给不可空的Key类型,因此触发报错。

修复方案

有两种常用修复方式,可根据你的业务需求选择:

  • 方案1:调整key参数为可空可选(绝大多数场景推荐)
    直接修改MainPage的构造函数定义,去掉key前的required修饰,同时给Key类型添加可空标记?,修改后代码如下:
    MainPage({Key? key, required this.title}) : super(key: key);
    
    调整后实例化时不需要强制传key,不传的默认值null符合可空类型要求,不会触发报错。
  • 方案2:实例化时补传key参数
    如果你当前的业务场景要求MainPage必须绑定唯一key,直接在实例化时补充传入合法的Key值即可,修改后代码如下:
    home: MainPage(key: UniqueKey(), title: 'Flutter Convex BottomBar Sample'),
    
    你可以根据需求选择UniqueKey、ValueKey等不同的Key类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:36:03