跳到主内容

non_constant_default_value_from_deferred_library

来自延迟加载库的常量值不能用作默认参数值。

描述

#

当可选参数的默认值使用从延迟导入的库中导入的常量时,分析器会产生此诊断信息。默认值需要在编译时可用,而来自延迟加载库的常量在编译时不可用。

欲了解更多信息,请查看延迟加载库

示例

#

给定一个定义常量 zero 的文件 a.dart

dart
const zero = 0;

以下代码会产生此诊断信息,因为 zero 是在通过延迟导入方式导入的库中声明的

dart
import 'a.dart' deferred as a;

void f({int x = a.zero}) {}

常见修复

#

如果你需要引用导入库中的常量,请删除 deferred 关键字

dart
import 'a.dart' as a;

void f({int x = a.zero}) {}

如果你不需要引用该常量,请替换默认值

dart
void f({int x = 0}) {}