flutter开发警告Diese Klasse (oder eine Klasse, von der diese Klasse erbt) ist als „@immutable“ markiert, aber eine

Fügen Sie hier eine Bildbeschreibung ein

Problembeschreibung

Diese Klasse (oder eine Klasse, von der diese Klasse erbt) ist als „@immutable“ markiert, aber eines oder mehrere ihrer Instanzfelder sind nicht endgültig: SerialsTimer.tasks
Fügen Sie hier eine Bildbeschreibung ein

Problemcode

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

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

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

Problemursachen

Dart schließt daraus, dass die von Ihnen geschriebene Klasse eine @immutable (unveränderliche) Klasse ist.
Diese Warnung liegt daran, dass in einer als @immutable (unveränderlich) gekennzeichneten Klasse eines der Instanzfelder (Mitgliedsvariablen) nicht als endgültig deklariert ist.

Wenn Sie in Dart die Annotation @immutable verwenden, müssen alle Instanzfelder der Klasse endgültig sein, um die Unveränderlichkeit des Objekts sicherzustellen. Die Erstellung und Verwaltung unveränderlicher Objekte trägt dazu bei, zuverlässigeren und wartbareren Code zu schreiben.

Wie löst man

Um diese Warnung zu beheben, können Sie Instanzfelder bei der Deklaration als endgültig markieren.

Letzter Modifikator hinzugefügt, um das Aufgabenfeld in der SerialsTimer-Klasse zu korrigieren. Auf diese Weise erfüllt die Klasse die Anforderungen von @immutable. Bitte beachten Sie auch in anderen Bereichen die Vorschriften.

Modifizierter Quellcode

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

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

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

Fügen Sie hier eine Bildbeschreibung ein


Abschluss
Flutter ist ein von Google entwickeltes Open-Source-UI-Toolkit, mit dem Sie hochwertige, schöne Anwendungen auf verschiedenen Plattformen erstellen können, ohne viel plattformspezifischen Code schreiben zu müssen. Ich werde alle Aspekte von Flutter lernen und vertiefen. Von Grundkenntnissen bis hin zu fortgeschrittenen Techniken, vom UI-Design bis zur Leistungsoptimierung – diskutieren und lernen Sie gemeinsam mit uns und betreten Sie gemeinsam die wunderbare Welt von Flutter!

Supongo que te gusta

Origin blog.csdn.net/yikezhuixun/article/details/134826156
Recomendado
Clasificación