如何启用Flutter / Dart语言实验?

时间:2019-04-02 14:16:56

标签: intellij-idea dart flutter

我想在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)

9 个答案:

答案 0 :(得分:19)

就我而言,我已经遵循了这两个步骤,并且对我有用。

  1. 运行“ flutter升级

  2. 在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

For more information head to this documentation

答案 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"