flutter --flow-control-collections sont nécessaires, mais le sont-ils?

14

Après la mise à niveau de flutter (versions master et stable) et dart, j'obtiens une erreur à propos de l'expérience --flow-control-collections n'étant pas activé pour les diverses boucles for que j'utilise dans le projet. J'ai essayé de le réparer en utilisant cette entrée, mais cela rendait les choses encore plus étranges. Donc, maintenant, j'ai l'erreur ci-dessous qui me dit que j'ai besoin que l'expérience de contrôle-flux-collections soit activée tout en me disant simultanément qu'elle n'est plus requise.

 eex

Cette erreur apparaît pour chaque boucle for que j'utilise.

Voici mon flottement - 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)

Des idées pour résoudre ce problème?

William Terrill
la source

Réponses:

40

Hé, j'ai eu le même problème ce matin mais j'ai trouvé une solution.

1) Conservez le fichier analysis_options.yaml dans votre dossier racine avec ce code:

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

2) N'utilisez pas de crochets {} entre vos boucles for Ex:

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

3) Étape importante qui explique probablement pourquoi cela ne fonctionne pas pour vous: modifiez votre contrainte de version Dart dans le fichier pubspec.yml de votre dossier racine en 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"
Alexandre
la source
16
numéro 3 a fait l'affaire
Ali80
Le drapeau control-flow-collectionsn'est plus requis
jibiel
10

Il suffit de mettre à jour la version minimale de Dart dans pubspec.yaml :

environment:
  sdk: ">=2.5.0 <3.0.0"

Dans les notes du journal des modifications de Dart 2.5, vous pouvez voir la nouvelle option pour ajouter un ifélément à un littéral de collection.

Suragch
la source
5

Même après avoir changé le dart versionn'a pas fonctionné, redémarrez simplement votre VS Codeou n'importe quel éditeur que vous utilisez. Vérifiez ensuite si l'erreur existe. Si c'est le cas, exécutez flutter clean.

Thanooshan
la source
3

Changer la version de fléchettes dans pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

puis

 flutter pub get
 flutter clean

Et redémarrez Android Studio

Des noisettes
la source
2

La simple mise à jour de la version minimale de Dart en pubspec.yamlme suffisait:

environment:
  sdk: ">=2.7.0 <3.0.0"
Ahmed Hassan
la source