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. 查看更多
解决方案:
有两种解决方案。一种是通用的,一种仅针对这种情况。
-
使用 Bang 运算符 (
!)Color color = Colors.grey[300]! // Added '!', error gone -
使用
shadeXXX在ColorColor color = Colors.grey.shade300;