flutter - fluxo-controle-coleções são necessárias, mas são?

14

Depois de atualizar o flutter (versões mestre e estável) e o dardo, recebo um erro sobre o experimento - flow-control-collections não sendo ativado para vários loops de forca que estou usando no projeto. Tentei corrigi-lo usando essa entrada, mas isso só fez as coisas mais estranhas. Portanto, agora eu tenho o erro abaixo que me diz que eu preciso que a experiência controle-fluxo-coleções seja ativada enquanto simultaneamente me diz que não é mais necessária.

 eex

Este erro aparece para cada loop for que estou usando.

Aqui está a minha vibração - versão

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)

Alguma ideia de como resolver isso?

William Terrill
fonte

Respostas:

40

Ei, eu tive o mesmo problema esta manhã, mas encontrei uma solução.

1) Mantenha o analysis_options.yaml na sua pasta raiz com este código:

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

2) Não use colchetes {} entre os loops for Ex:

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

3) Etapa importante, provavelmente a razão pela qual ela não está funcionando: Altere a restrição de versão do Dart no arquivo pubspec.yml na pasta raiz para 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"
Alexandre
fonte
16
número 3 fez o truque
Ali80 01/01
A bandeira control-flow-collectionsnão é mais necessária
jibiel 12/03
10

Basta atualizar a versão mínima do Dart no pubspec.yaml :

environment:
  sdk: ">=2.5.0 <3.0.0"

Nas anotações do log de alterações do Dart 2.5, você pode ver a nova opção para adicionar um ifelemento a um literal de coleção.

Suragch
fonte
5

Mesmo depois de alterar o dart versionque não funcionou, basta reiniciar VS Codeo editor ou o que você estiver usando. Em seguida, verifique se o erro está lá. Se sim, então execute flutter clean.

Thanooshan
fonte
3

Alterar a versão do dardo em pubspec.yml

environment:
  sdk: ">=2.6.0 <3.0.0"

então

 flutter pub get
 flutter clean

E reinicie o Android Studio

Nozes
fonte
2

Basta atualizar a versão mínima do Dart pubspec.yamlpara mim:

environment:
  sdk: ">=2.7.0 <3.0.0"
Ahmed Hassan
fonte