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
Flutter 常量变量必须用常量值| | const vs var | | flift初始化_Flutter_Dart_Constants - Fatal编程技术网

Flutter 常量变量必须用常量值| | const vs var | | flift初始化

Flutter 常量变量必须用常量值| | const vs var | | flift初始化,flutter,dart,constants,Flutter,Dart,Constants,嗨, 我一直在学习颤振自己,并陷入了这个错误。 我有一个constants.dart文件,在其中保存应用程序的所有样式。 每当我尝试将color:Colors.greenAccent,添加到常量时,我都会得到一个错误“const变量必须用常量值初始化” 但我把const改为var,问题就解决了 对于以下代码,我也会得到相同的错误: const kBorderStyle2 = BoxDecoration( borderRadius: BorderRadius.all( Radi

嗨, 我一直在学习颤振自己,并陷入了这个错误。 我有一个constants.dart文件,在其中保存应用程序的所有样式。 每当我尝试将
color:Colors.greenAccent,
添加到常量时,我都会得到一个错误“const变量必须用常量值初始化” 但我把const改为var,问题就解决了

对于以下代码,我也会得到相同的错误:

    const kBorderStyle2 = BoxDecoration(
  borderRadius: BorderRadius.all(
    Radius.circular(20),
  ),
  border: Border.all(color: Colors.greenAccent,),
);
当我将其更改为:

const kBorderStyleX = BoxDecoration(
  color: Colors.greenAccent,
  borderRadius: BorderRadius.circular(20),
);
康斯特,我有什么遗漏吗?
出现错误的原因是什么?

要检查对象是否有资格分配给
const
变量,Dart依赖于创建对象的构造函数,该构造函数可以标记为const,也可以不标记为const(例如
const BorderRadius.all()
BorderRadius.circular()


这就是为什么即使对象可能无法更改,Dart也可以将其视为可以更改的对象,如果使用的构造函数未标记为
const

指向文档的链接:,
Border.all()
,也是OP的第一个示例中的一个问题。考虑到您对
const Colors.greenAccent的混淆。然后,来自
flatter
的构造函数自带
const
本身。请参阅下面的链接,您将获得更多信息:
const kBorderStyle1 = BoxDecoration(
  color: Colors.greenAccent,
  borderRadius: BorderRadius.all(
    Radius.circular(20),
  ),
);