flutter - flow-control-collection нужны, но так ли это?

14

После обновления флаттера (как основной, так и стабильной версий) и дротика я получаю сообщение об ошибке эксперимента - коллекции потоков управления не включены для различных циклов for, которые я использую в проекте. Я попытался исправить это с помощью этой записи, но это только сделало вещи более странными. Итак, теперь у меня есть ошибка ниже, которая говорит мне, что мне нужно, чтобы эксперимент управления коллекциями потока был включен, одновременно говоря, что он больше не требуется.

 EEx

Эта ошибка появляется для каждого цикла for, который я использую.

Вот мой флаттер - версия

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)

Есть идеи, как решить эту проблему?

Уильям Террилл
источник

Ответы:

40

Эй, у меня была та же проблема этим утром, но я нашел решение.

1) Сохраните analysis_options.yaml в корневой папке с этим кодом:

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

2) Не используйте скобки {} между циклами for. Например :

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

3) Важный шаг, вероятно, поэтому он не работает для вас: измените ограничение версии Dart в файле pubspec.yml в корневой папке на 2.5.2.

environment:
  sdk: ">=2.5.2 <3.0.0"
Александр
источник
16
номер 3 сделал
свое дело
Флаг control-flow-collectionsбольше не требуется
jibiel
10

Достаточно просто обновить минимальную версию Dart в pubspec.yaml :

environment:
  sdk: ">=2.5.0 <3.0.0"

В заметках Dart 2.5 Change Log вы можете увидеть новую опцию добавления ifэлемента в литерал коллекции.

Suragch
источник
5

Даже после изменения dart versionне работает, просто перезапустите ваш VS Codeили любой другой редактор, который вы используете. Затем проверьте, есть ли ошибка. Если так, то беги flutter clean.

Thanooshan
источник
3

Изменить версию дротика в pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

тогда

 flutter pub get
 flutter clean

И перезапустите Android Studio

орешки
источник
2

pubspec.yamlМне достаточно было обновить минимальную версию Dart in :

environment:
  sdk: ">=2.7.0 <3.0.0"
Ахмед Хасан
источник