flutter开発行警告このクラス (またはこのクラスの継承元のクラス) は「@immutable」としてマークされていますが、

ここに画像の説明を挿入します

問題の説明

このクラス (またはこのクラスの継承元のクラス) は「@immutable」としてマークされていますが、そのインスタンス フィールドの 1 つ以上が最終ではありません: SerialsTimer.tasks
ここに画像の説明を挿入します

問題コード

class SerialsTimer extends StatefulWidget {
    
    
  late Queue <Task> tasks; // 使用 Queue 来管理任务

  SerialsTimer({
    
    
    Key? key,
    required this.tasks,
  }) : super(key: key);

  
  State<SerialsTimer> createState() => _SerialsTimerState();
}

問題の原因

Dart は、作成したクラスが @immutable (不変) クラスであると推測します。
この警告は、@immutable (不変) としてマークされたクラスで、インスタンス フィールド (メンバー変数) の 1 つが Final として宣言されていないために発生します。

Dart では、@immutable アノテーションを使用する場合、オブジェクトの不変性を確保するために、クラスのすべてのインスタンス フィールドが Final である必要があります。不変オブジェクトの作成と管理は、より信頼性が高く保守しやすいコードを作成するのに役立ちます。

の解き方

この警告を解決するには、インスタンス フィールドを宣言するときに、そのフィールドを最終としてマークします。

SerialsTimer クラスのタスクフィールドを修正する最終修飾子を追加しました。このようにして、クラスは @immutable の要件を満たします。その他の分野においても、必ず法令を遵守してください。

変更されたソースコード

class SerialsTimer extends StatefulWidget {
    
    
  final Queue <Task> tasks; // 使用 Queue 来管理任务

  const SerialsTimer({
    
    
    Key? key,
    required this.tasks,
  }) : super(key: key);

  
  State<SerialsTimer> createState() => _SerialsTimerState();
}

ここに画像の説明を挿入します


結論
Flutter は、Google が開発したオープンソースの UI ツールキットで、これを使用すると、プラットフォーム固有のコードを大量に記述せずに、さまざまなプラットフォーム上で高品質で美しいアプリケーションを作成できます。 Flutter のあらゆる側面を学び、掘り下げていきます。基礎知識から高度なテクニック、UIデザインからパフォーマンスの最適化まで、一緒に議論して学び、一緒にFlutterの素晴らしい世界に入りましょう!

おすすめ

転載: blog.csdn.net/yikezhuixun/article/details/134826156
おすすめ