trzepot - potrzebne są kolekcje kontroli przepływu, ale czy tak?

14

Po uaktualnieniu trzepotania (zarówno wersji głównej, jak i stabilnej) i rzutki pojawia się błąd dotyczący eksperymentu - kolekcje kontroli przepływu nie są włączone dla różnych pętli for, których używam w projekcie. Próbowałem to naprawić za pomocą tego wpisu, ale to tylko pogorszyło sytuację. Tak więc teraz mam poniższy błąd, który mówi mi, że potrzebuję włączyć eksperyment gromadzenia kontroli przepływu, jednocześnie mówiąc mi, że nie jest już wymagany.

 eex

Ten błąd pojawia się przy każdej używanej pętli for.

Oto mój trzepot - wersja

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)

Wszelkie pomysły, jak to rozwiązać?

William Terrill
źródło

Odpowiedzi:

40

Hej, miałem ten sam problem dziś rano, ale znalazłem rozwiązanie.

1) Zachowaj plik Analysis_options.yaml w folderze głównym z tym kodem:

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

2) Nie używaj nawiasów {} pomiędzy pętlami for np.

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

3) Ważny krok, prawdopodobnie dlatego nie działa dla ciebie: zmień ograniczenie wersji Dart w pliku pubspec.yml w folderze głównym na 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"
Alexandre
źródło
16
numer 3
załatwił sprawę
Flaga control-flow-collectionsnie jest już wymagana
Jibiel
10

Wystarczy zaktualizować minimalną wersję Dart w pubspec.yaml :

environment:
  sdk: ">=2.5.0 <3.0.0"

W notatkach dziennika zmian Dart 2.5 można zobaczyć nową opcję dodawania ifelementu do literału kolekcji.

Suragch
źródło
5

Nawet po zmianie dart versionnie działało, po prostu uruchom ponownie VS Codeedytor lub inny edytor, którego używasz. Następnie sprawdź, czy występuje błąd. Jeśli tak, to uruchom flutter clean.

Thanooshan
źródło
3

Zmień wersję rzutki w pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

następnie

 flutter pub get
 flutter clean

I uruchom ponownie Android Studio

Orzechy
źródło
2

Wystarczyła mi aktualizacja minimalnej wersji Dart pubspec.yaml:

environment:
  sdk: ">=2.7.0 <3.0.0"
Ahmed Hassan
źródło