メインコンテンツにスキップ

遅延_ロード_された_ライブラリ_からの_非定数_デフォルト_

遅延ロードされたライブラリからの定数値は、デフォルトのパラメータ値として使用できません。

説明

#

遅延インポートを使用してインポートされたライブラリの定数を、オプションパラメータのデフォルト値が使用している場合に、アナライザーはこの診断を生成します。デフォルト値はコンパイル時に利用可能である必要があり、遅延ロードされたライブラリからの定数はコンパイル時には利用できません。

詳細については、ライブラリの遅延ロード を参照してください。

#

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