Flutter:不推荐使用列表?

Chr*_*ris 51 dart flutter

升级到最新版本的 flutter 后,我的所有列表都收到了弃用警告。

List<MyClass> _files = List<MyClass>();
=>'List' is deprecated and shouldn't be used.
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有暗示用什么来替换它。那么我们现在应该用什么来代替呢?

  • Dart SDK 版本:2.12.0-141.0.dev
  • Flutter:频道主,1.25.0-9.0.pre.42

Chr*_*ris 100

好的找到了,就是如何实例化它:

List<MyClass> _files = [];
Run Code Online (Sandbox Code Playgroud)

编辑:也许是最常见的,根据文档更详细一点:

大小为 0 的定长列表

List<MyClass> _list = List<MyClass>.empty();
Run Code Online (Sandbox Code Playgroud)

可增长的清单

List<MyClass> _list = [];
//or
List<MyClass> _list = List<MyClass>.empty(growable: true);
Run Code Online (Sandbox Code Playgroud)

具有预定义填充的固定长度

int length = 3;
String fill = "test";
List<String> _list =  List<String>.filled(length ,fill , growable: true);
// => ["test", "test", "test"]
Run Code Online (Sandbox Code Playgroud)

具有生成功能的列表

int length = 3;
MyClass myFun(int idx) => MyClass(id: idx);
List<MyClass> _list = List.generate(length, myFun, growable: true); 
// => [Instance of 'MyClass', Instance of 'MyClass', Instance of 'MyClass']
Run Code Online (Sandbox Code Playgroud)


小智 19

List<MyClass> myList = <MyClass>[];
Run Code Online (Sandbox Code Playgroud)


小智 5

从:

_todoList = new List();
Run Code Online (Sandbox Code Playgroud)

改成:

_todoList = [];
Run Code Online (Sandbox Code Playgroud)