Flutter构建报错:bool?类型无法赋值给非空bool类型
Flutter空安全错误解决方案:bool? 无法赋值给bool
问题本质
你遇到的是Flutter空安全的基础问题:childView.primary是可空布尔类型(bool?),它的值可能是true、false或者null;但三元表达式的判断条件要求必须是非空布尔类型(bool),不能包含null,所以编译器报错。
三种解决方案
根据你的业务场景选一种即可:
确定
primary永远不为空时,强制断言非空
用!运算符告诉编译器“这个值肯定不是null”,但如果运行时实际为null会直接崩溃,仅在你100%确定的情况下使用:(childView.primary! ? PrimaryScrollController.of(context) : null);给
primary设置默认值
用??运算符,当primary为null时自动使用默认值(这里以默认false为例,你可以根据业务调整):(childView.primary ?? false ? PrimaryScrollController.of(context) : null);单独处理null的特殊情况
如果primary为null时需要单独的逻辑,拆分判断:childView.primary == null ? null // 这里替换成你需要的null分支逻辑 : (childView.primary! ? PrimaryScrollController.of(context) : null);
内容的提问来源于stack exchange,提问作者exkuzme
相关产品推荐
相关产品推荐

