flutter --flow-control-collection sono necessarie, ma lo sono?


14

Dopo aver aggiornato flutter (entrambe le versioni principale e stabile) e il dardo, ricevo un errore sull'esperimento: le raccolte di controllo del flusso non sono abilitate per vari for-loop che sto usando nel progetto. Ho provato a risolverlo usando questa voce ma questo ha reso le cose più strane. Quindi, ora ho l'errore di seguito che mi dice che ho bisogno di abilitare l'esperimento control-flow-collections mentre mi dice contemporaneamente che non è più necessario.

 EEx

Questo errore viene visualizzato per ogni for-loop che sto usando.

Ecco il mio flutter --version

Stable:
Flutter 1.12.13+hotfix.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 27321ebbad (13 days ago)2019-12-10 18:15:01 -0800
Engine • revision 2994f7e1e6
ToolsDart 2.7.0

Master:
Flutter 1.13.6-pre.16 • channel master • https://github.com/flutter/flutter.git
Framework • revision fcaf9c4070 (2 days ago)2019-12-21 14:03:01 -0800
Engine • revision 33813929e3
ToolsDart 2.8.0 (build 2.8.0-dev.0.0 886615d0f9)

Qualche idea su come risolverlo?

Risposte:


40

Ehi, ho avuto lo stesso problema stamattina ma ho trovato una soluzione.

1) Conserva analysis_options.yaml nella cartella principale con questo codice:

analyzer:
  enable-experiment:
    - control-flow-collections

2) Non utilizzare le parentesi {} tra i cicli for Ex:

<Widget>[
  for (final category in categories) 
    CategoryWidget(category: category)
],

3) Passaggio importante che probabilmente è il motivo per cui non funziona per te: modifica il vincolo della versione Dart nel file pubspec.yml nella cartella principale in 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"

16
il numero 3 ha fatto il trucco
Ali80,

La bandiera control-flow-collectionsnon è più richiesta
jibiel

10

È sufficiente aggiornare semplicemente la versione minima di Dart in pubspec.yaml :

environment:
  sdk: ">=2.5.0 <3.0.0"

Nelle note del Dart 2.5 Change Log puoi vedere la nuova opzione per aggiungere un ifelemento a un insieme letterale.


5

Anche dopo aver cambiato il dart versionnon ha funzionato, riavvia semplicemente il tuo VS Codeo qualunque editor tu stia usando. Quindi controlla se l'errore è presente. In tal caso, quindi eseguire flutter clean.


3

Cambia la versione del dardo in pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

poi

 flutter pub get
 flutter clean

E riavvia Android Studio


2

Il semplice aggiornamento della versione minima di Dart è pubspec.yamlstato sufficiente per me:

environment:
  sdk: ">=2.7.0 <3.0.0"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.