setState() or markNeedsBuild() called during build: The widget on which setState was called at that time was already being built. – Flutter SETSTATE_DURING_BUILD

SETSTATE_DURING_BUILD

Si verifica quando si richiama la modifica dello stato (o una navigazione `Navigator.push`) direttamente all'interno del metodo `build()`; deve essere differita a fine frame tramite `WidgetsBinding.instance.addPostFrameCallback`.

Cosa significa questo errore?

Si verifica quando si richiama la modifica dello stato (o una navigazione `Navigator.push`) direttamente all'interno del metodo `build()`; deve essere differita a fine frame tramite `WidgetsBinding.instance.addPostFrameCallback`.

Messaggio originale

setState() or markNeedsBuild() called during build: The widget on which setState was called at that time was already being built.

Contesto e parole chiave

Alias

  • markNeedsBuild called during build
  • setState() called during build

Messaggi alternativi

  • chiamata a setState durante la fase di build

Prodotti

  • Flutter SDK / Dart VM / Flutter Framework / Gradle / CocoaPods

Piattaforme

  • Android
  • iOS
  • Linux
  • macOS
  • Web
  • Windows

Parole chiave

  • dart
  • Dart e Runtime
  • errore-flutter-setstate-called-during-build
  • flutter
  • flutter.rendering.setstate-called-during-build
  • SETSTATE_DURING_BUILD
  • widget

Cause possibili

Origine del problema per Flutter: setState() or markNeedsBuild() called during build

Si verifica quando si richiama la modifica dello stato (o una navigazione `Navigator.push`) direttamente all'interno del metodo `build()`; deve essere differita a fine frame tramite `WidgetsBinding.instance.addPostFrameCallback`.

molto comune

Diagnosi

Diagnostica Flutter per Flutter: setState() or markNeedsBuild() called during build

Eseguire flutter doctor con flag verbose ed esaminare l'output di debug a console.

Come leggere il risultato. Evidenzia discrepanze nelle toolchain Android/iOS, plugin mancanti o configurazioni SDK errate.

flutter
flutter doctor -v

Risoluzione

Procedura di risoluzione per Flutter: setState() or markNeedsBuild() called during build

Difficoltà: facileRischio: basso

Applicare la correzione al codice Dart o alla configurazione di build secondo la documentazione ufficiale Flutter.

  1. Verificare i vincoli di layout o la gerarchia dei widget
  2. Eseguire una pulizia della cache di build con flutter clean
  3. Aggiornare le dipendenze con flutter pub get
flutter
flutter clean && flutter pub get

Domande frequenti

Come risolvere il codice o problema SETSTATE_DURING_BUILD in Flutter?

Si verifica quando si richiama la modifica dello stato (o una navigazione `Navigator.push`) direttamente all'interno del metodo `build()`; deve essere differita a fine frame tramite `WidgetsBinding.instance.addPostFrameCallback`.

Approfondimenti

Schede correlate