const变量必须使用常数||初始化。 const vs var ||扑

时间:2020-10-21 12:46:26

标签: flutter dart constants

    const kBorderStyle2 = BoxDecoration(
  borderRadius: BorderRadius.all(
    Radius.circular(20),
  ),
  border: Border.all(color: Colors.greenAccent,),
);

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

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

const kBorderStyleX = BoxDecoration(
  color: Colors.greenAccent,
  borderRadius: BorderRadius.circular(20),
);

当我将其更改为:

const kBorderStyle1 = BoxDecoration(
  color: Colors.greenAccent,
  borderRadius: BorderRadius.all(
    Radius.circular(20),
  ),
);

const是否缺少某些内容? 我为什么会收到错误消息?

1 个答案:

答案 0 :(得分:2)

要检查对象是否符合分配给const变量的条件,Dart依赖于创建对象的构造函数,可以将其标记为const(例如,const BorderRadius.all()与{ {1}}。

这就是即使即使使用的构造函数未标记为BorderRadius.circular(),即使对象可能甚至无法更改的原因,Dart也会将其视为可能的原因。