Flutter 颤振null安全-参数类型“Color?”无法分配给参数类型“Color”
我将flutter的SDK版本更改为min,以便修复空安全性代码 有一个问题我不明白, 此行产生以下错误:Flutter 颤振null安全-参数类型“Color?”无法分配给参数类型“Color”,flutter,dart-null-safety,Flutter,Dart Null Safety,我将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), 但是如果我改变颜色。灰色[300],不管它的值不使用[],它都会工作, 所以颜色。灰色很好用 我应该在这里更改什么以继续使用灰色
The argument type 'Color?' can't be assigned to the parameter type 'Color'
border: Border.all(color: Colors.grey[300], width: 1),
但是如果我改变颜色。灰色[300],不管它的值不使用[],它都会工作,
所以颜色。灰色很好用
我应该在这里更改什么以继续使用灰色[300]?您可以将0xFFE0E0用于灰色[300]
要选择材质颜色,可以使用此选项
要从其中一个样例中选择特定颜色,请使用所需特定颜色的整数索引到样例中,如下所示:
颜色选择=颜色。绿色[400]!;//选择中档绿色。
每个色样常量都是一种颜色,可以直接使用。例如:
Container(
color: Colors.blue, // same as Colors.blue[500] or Colors.blue.shade500
)
问题:
当您使用Colors.grey[300]时,实际上是从地图中获取颜色,该地图在空安全模式下会发出警告,因为该值可能为空
解决方案:
有两种解决方案。一个是一般性的,另一个只是针对这种情况
使用Bang操作符
在颜色上使用shadeXXX
是的,我注意到了,但这是否意味着在[x]中使用特定颜色的阴影不再被允许,因为在颤振2中使用空安全性?是的,你们可以在这里检查这个问题
Color color = Colors.grey[300]; // Error in null-safe mode
Color color = Colors.grey[300]! // Added '!', error gone
Color color = Colors.grey.shade300;