我想在Dart中使用新的spread syntax。
我正在使用Android Studio进行Flutter开发,并且收到此错误。
这需要启用--spread-collections实验
ListView(children: [...listTiles, MyWidget()])
但是,我找不到可以指定此选项的地方。
我什至无法使其在命令行上运行。 flutter --spread-collections run
给出Could not find an option named "spread-collections".
。
flutter --version
Flutter 1.3.8 • channel beta • https://github.com/flutter/flutter.git
Framework • revision e5b1ed7a7f (4 weeks ago) • 2019-03-06 14:23:37 -0800
Engine • revision f4951df193
Tools • Dart 2.2.1 (build 2.2.1-dev.0.0 571ea80e11)
答案 0 :(得分:19)
就我而言,我已经遵循了这两个步骤,并且对我有用。
运行“ flutter升级”
在pubspec.yaml中的环境中更改sdk
environment:
sdk: ">=2.6.0 <3.0.0"
答案 1 :(得分:10)
使用新版的flutter,它变成了错误-但可以通过更新sdk版本来轻松解决:
emulators:export
别忘了重启VisualStudio代码或您正在使用的任何IDE。
答案 2 :(得分:3)
以下是一些您可以尝试解决的方法:
1)使用以下代码将analysis_options.yaml保留在您的根文件夹中:
analyzer:
enable-experiment:
- control-flow-collections
2)不要在for循环之间使用方括号{} 例如:
<Widget>[
for (final category in categories)
CategoryWidget(category: category)
],
3)重要的步骤,这可能就是为什么它对您不起作用的原因: 将根文件夹中pubspec.yml文件中的Dart版本约束更改为2.5.2或更高版本。
environment:
sdk: ">=2.5.2 <3.0.0"
答案 3 :(得分:2)
在最新的Flutter 1.17.1或Dart 2.8.2中有效的当前答案
在pubspec.yaml文件的目录中创建analysis_options.yaml
将此代码写入文件内:
include: package:pedantic/analysis_options.1.8.0.yaml
linter:
rules:
- prefer_spread_collections
答案 4 :(得分:1)
在master分支上,您可以在flutter应用程序的根目录中创建一个analysis_options.yaml文件,并编写类似
的内容analyzer:
enable-experiment:
- spread-collections
说了这么多,我采用了最新版本的master(1.4.8-pre.41),并且spread运算符进行了编译,但实际上并没有合并值。我猜它还没有完全实现。现在...您可以使用收益运算符https://medium.com/flutter-community/quick-tip-sync-a-taste-of-the-future-9be4cd6993f4
答案 5 :(得分:0)
您正在运行旧版的flutter
在flutter 1.5和dart 2.3中可用扩展
运行Flutter升级...
答案 6 :(得分:0)
完全不同但相同的东西。我们的代码是在Flutter v1.12.13hotfix9中构建的。当我们使用flutter 1.17.1进行新安装时,构建因类似错误而中断。似乎新发行的Flutter在某些部分上不向后兼容。 我们通过安装旧版本解决了该问题。
答案 7 :(得分:0)
从项目的根目录运行此命令:
select week_number, entity_id from abc.items
where week_number >= extract(week from current_date) - 6
and week_number <= extract(week from current_date) - 1
and item_type like '%Ionize - Data%'
order by week_number desc;
答案 8 :(得分:0)
在 pubspec.yml 中更新环境后不要忘记重启你的 IDE
environment:
sdk: ">=2.7.2 <3.0.0"