Flutternull安全-参数类型“颜色?”不能分配给参数类型“颜色”

我将 flutter 的 SDK 版本更改为 min ,以便我可以修复我的代码以确保空值安全。

有一个我不明白的问题,这一行产生了以下错误:

The argument type 'Color?' can't be assigned to the parameter type 'Color'

border: Border.all(color: Colors.grey[300], width: 1),

但是如果我改变Colors.grey[300]任何不使用的值[],它就会工作,所以Colors.grey工作得很好。

我应该在这里更改什么以继续使用grey[300]

回答

问题:

Color color = Colors.grey[300]; // Error in null-safe mode

当您使用 时Colors.grey[300],您实际上是从MapDart(在空安全模式下)警告您的颜色中获取颜色,因为该值可能是null. 查看更多


解决方案:

有两种解决方案。一种是通用的,一种仅针对这种情况。

  1. 使用 Bang 运算符 ( !)

    Color color = Colors.grey[300]!  // Added '!', error gone 
    
  2. 使用shadeXXXColor

    Color color = Colors.grey.shade300;
    

以上是Flutternull安全-参数类型“颜色?”不能分配给参数类型“颜色”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>