flutter --flow-control-collections 是需要的,但是是吗?

Wil*_*ill 30 upgrade dart flutter

升级 flutter(主版本和稳定版本)和 dart 后,我​​收到一个错误,提示我在项目中使用的各种 for-loops 没有启用实验 --flow-control-collections。我尝试使用此条目修复它,但这只会让事情变得更奇怪。所以,现在我有以下错误,告诉我我需要启用控制流集合实验,同时告诉我不再需要它。

 eex

我使用的每个 for 循环都会出现此错误。

这是我的 flutter --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
Tools • Dart 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
Tools • Dart 2.8.0 (build 2.8.0-dev.0.0 886615d0f9)
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

小智 69

嘿,我今天早上遇到了同样的问题,但找到了解决方法。

1) 使用以下代码将 analysis_options.yaml 保存在您的根文件夹中:

analyzer:
  enable-experiment:
    - control-flow-collections
Run Code Online (Sandbox Code Playgroud)

2) 不要在 for 循环之间使用方括号 {} 例如:

<Widget>[
  for (final category in categories) 
    CategoryWidget(category: category)
],
Run Code Online (Sandbox Code Playgroud)

3)重要的一步,这可能是它对您不起作用的原因: 将根文件夹中 pubspec.yml 文件中的 Dart 版本约束更改为 2.5.2

environment:
  sdk: ">=2.5.2 <3.0.0"
Run Code Online (Sandbox Code Playgroud)


Nut*_*uts 31

在 pubspec.yml 中更改 dart 版本

environment:
  sdk: ">=2.6.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

然后

 flutter pub get
 flutter clean
Run Code Online (Sandbox Code Playgroud)

并重启 Android Studio


Tha*_*han 18

即使更改dart version不起作用,也只需重新启动您的VS Code或您正在使用的任何编辑器。然后检查是否有错误。如果是这样,那么运行flutter clean