Flutter null safety - 参数类型 'Color?' 无法分配给参数类型 'Color'
Flutter null safety - The argument type 'Color?' can't be assigned to the parameter type 'Color'
我将 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]
?
灰色[300]可以使用0xFFE0E0E0
。
要选择 material 颜色,您可以使用此 tool。
要 select 来自其中一个样本的特定颜色,使用所需特定颜色的整数对样本进行索引,如下所示:
Color selection = Colors.green[400]!; // Selects a mid-range green.
每个ColorSwatch常量都是一种颜色,可以直接使用。例如:
Container(
color: Colors.blue, // same as Colors.blue[500] or Colors.blue.shade500
)
问题:
Color color = Colors.grey[300]; // Error in null-safe mode
当您使用 Colors.grey[300]
时,您实际上是从 Map
获取颜色,Dart(在空安全模式下)会警告您,因为该值可能是 null
. See more
解法:
有两种解决方法。一种是通用的,一种是针对本案的。
使用Bang运算符(!
)
Color color = Colors.grey[300]! // Added '!', error gone
在 Color
上使用 shadeXXX
Color color = Colors.grey.shade300;
喜欢使用 shade300
颜色 color = Colors.grey.shade300;
我将 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]
?
灰色[300]可以使用0xFFE0E0E0
。
要选择 material 颜色,您可以使用此 tool。
要 select 来自其中一个样本的特定颜色,使用所需特定颜色的整数对样本进行索引,如下所示:
Color selection = Colors.green[400]!; // Selects a mid-range green.
每个ColorSwatch常量都是一种颜色,可以直接使用。例如:
Container(
color: Colors.blue, // same as Colors.blue[500] or Colors.blue.shade500
)
问题:
Color color = Colors.grey[300]; // Error in null-safe mode
当您使用 Colors.grey[300]
时,您实际上是从 Map
获取颜色,Dart(在空安全模式下)会警告您,因为该值可能是 null
. See more
解法:
有两种解决方法。一种是通用的,一种是针对本案的。
使用Bang运算符(
!
)Color color = Colors.grey[300]! // Added '!', error gone
在
上使用Color
shadeXXX
Color color = Colors.grey.shade300;
喜欢使用 shade300 颜色 color = Colors.grey.shade300;