Flutter 常量变量必须用常量值| | const vs var | | flift初始化
嗨, 我一直在学习颤振自己,并陷入了这个错误。 我有一个constants.dart文件,在其中保存应用程序的所有样式。 每当我尝试将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
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),
),
);