跳到主內容

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}) {}