【发布时间】:2020-06-15 07:20:41
【问题描述】:
我正在尝试在 Flutter(Google 的 UI 工具包)中使用 control-flow-collections 来启用内联 for 循环,即:
for (int i = 0; i < globals.currentScaleList.scales.length; i++)
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
globals.currentScaleList.scales[i].scaleType.toString(),
style: TextStyle(fontSize: 20.0),
),
],
),
], itemExtent: 23.0, onSelectedItemChanged: (index) {}),
我在 SO 中看到了有关主题的其他问题,并遵循了似乎对其他人有用的所有说明。
- 我在 Master 通道和 Dart 2.8.0 上运行 Flutter 1.15.4-pre.248
Flutter 1.15.4-pre.248 • channel master • https://github.com/flutter/flutter.git
Framework • revision 686d163420 (2 hours ago) • 2020-03-02 16:25:22 -0500
Engine • revision 5e474ee860
Tools • Dart 2.8.0 (build 2.8.0-dev.10.0 fbe9f6115d)
- 我在我的根应用文件夹中创建了一个 analysis_options.yaml 文件并添加了以下内容:
analyzer:
enable-experiment:
- control-flow-collections
- 我还在 pubspec.yaml 中更新了 Dart 的最低版本,即:
environment:
sdk: ">=2.5.0 <3.0.0"
但是,我的“for”循环仍然出现错误:
“这需要启用 'control-flow-collections' 实验。 尝试通过在编译和运行时将其添加到命令行来启用此实验。”
当我在我的 analysis_options.yaml 文件中启用 3 行时,我收到警告:
“'enable-experiment' 不支持选项 'control-flow-collection'。”
我错过了什么?谢谢
【问题讨论】:
-
集合文字中的内联循环是在 Dart 2.3 (Flutter 1.5) 中正式引入的,不再是实验性的,所以你不需要配置任何东西。如果您对它们有疑问,则最新的主版本中可能存在错误。切换到其他渠道之一,看看问题是否仍然存在。
-
谢谢。似乎
flutter clean然后重新启动 VSCode 并删除 analysis_options.yaml 文件就可以了。谢谢。