Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 可选参数的默认值必须为常量-颜色_Dart - Fatal编程技术网

Dart 可选参数的默认值必须为常量-颜色

Dart 可选参数的默认值必须为常量-颜色,dart,Dart,我正在尝试为自定义小部件设置默认颜色 这就是问题所在的代码 class ReusableCard extends StatelessWidget { ReusableCard({this.color: Color(0xFF1D1E33)}); Color color; @override Widget build(BuildContext context) { return Expanded( child: Container(

我正在尝试为自定义小部件设置默认颜色

这就是问题所在的代码

class ReusableCard extends StatelessWidget {
   ReusableCard({this.color: Color(0xFF1D1E33)});

   Color color;

   @override
   Widget build(BuildContext context) {
     return Expanded(
       child: Container(
         margin: EdgeInsets.all(15.0),
         decoration: BoxDecoration(
           color: color,
           borderRadius: BorderRadius.circular(10.0),
         ),
       ),
     );
   }
 }
让我烦恼的是,如果我在第二行,它会说:

ReusableCard({this.color: Colors.red});
那就没有问题了。我已经试着做了

final color defaultColor = Color(0xFF1D1E33);

并改用defaultColor,但它不起作用。有什么想法吗

只需在
Color
值之前添加
const

类可重用卡扩展无状态小部件{
可重用卡({this.color:constcolor(0xff1de1e33)});//注意'const'关键字
颜色;
@凌驾
小部件构建(构建上下文){
扩大回报(
子:容器(
边距:所有边缘集(15.0),
装饰:盒子装饰(
颜色:颜色,
边界半径:边界半径。圆形(10.0),
),
),
);
}
}

Colors类返回一个常量值,这就是Colors.red可以工作的原因,因此当您指定自己的默认值时,默认颜色也必须是常量,即-->const color defaultColor=color(0xFF1D1E33);