flattern - Flow-Control-Sammlungen werden benötigt, aber sind sie?


14

Nach dem Upgrade von Flutter (sowohl Master- als auch Stable-Version) und Dart wird eine Fehlermeldung bezüglich des Experiments angezeigt - Flow-Control-Sammlungen sind für verschiedene For-Loops, die ich im Projekt verwende, nicht aktiviert. Ich habe versucht, es mit diesem Eintrag zu beheben, aber das hat die Dinge nur seltsamer gemacht. Jetzt habe ich den folgenden Fehler, der mir sagt, dass ich das Kontrollflusssammlungs-Experiment aktivieren muss, während ich gleichzeitig erfahre, dass es nicht mehr erforderlich ist.

 eex

Dieser Fehler tritt bei jeder von mir verwendeten for-Schleife auf.

Hier ist meine Flatterversion

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)

Irgendwelche Ideen, wie man das löst?

Antworten:


40

Hey, ich hatte heute Morgen das gleiche Problem, habe aber eine Lösung gefunden.

1) Bewahren Sie die Datei analysis_options.yaml mit diesem Code in Ihrem Stammordner auf:

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

2) Verwenden Sie keine Klammern {} zwischen Ihren for-Schleifen. Beispiel :

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

3) Wichtiger Schritt, der wahrscheinlich der Grund ist, warum er bei Ihnen nicht funktioniert: Ändern Sie Ihre Dart-Versionsbeschränkung in der Datei pubspec.yml in Ihrem Stammordner in 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"

16
Nummer 3 hat es geschafft
Ali80

Flagge control-flow-collectionsist nicht mehr erforderlich
Jibiel

10

Es reicht aus, nur die minimale Dart-Version in pubspec.yaml zu aktualisieren :

environment:
  sdk: ">=2.5.0 <3.0.0"

In den Notizen zum Dart 2.5-Änderungsprotokoll sehen Sie die neue Option zum Hinzufügen eines ifElements zu einem Sammlungsliteral.


5

Starten Sie auch nach dem Ändern des dart versionnicht funktionierenden VS CodeEditors oder des von Ihnen verwendeten Editors neu. Überprüfen Sie dann, ob der Fehler vorliegt. Wenn ja, dann laufen flutter clean.


3

Ändern Sie die Dart-Version in pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

dann

 flutter pub get
 flutter clean

Und starten Sie Android Studio neu


2

Es hat pubspec.yamlmir gereicht, nur die minimale Dart-Version zu aktualisieren :

environment:
  sdk: ">=2.7.0 <3.0.0"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.