使用Dart和Flutter在类中声明Map列表

时间:2018-03-08 07:57:57

标签: dart flutter

我尝试使用不同的语法来显示List<Map<String, Object>> _work;,但它仍然失败并发出错误

type 'MappedListIterable' is not a subtype of type 'List<Map<String, Object>> .....
MappedListIterable is from dart:_internal
List is from dart:core
Mapis is from dart:core
String is from dart:core
Object is from dart:core
.....

我想声明一个变量,它是一个Map列表,其中键是String,值是Object。我该怎么办?

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

缺少.toList()使MappedListIterable成为正确的列表。如果您在.map()上拨打.where()List或类似功能,则会获得MappedListIterable,并且只会调用.toList()(或其他方式来重复MappedListIterable)实现了结果,因为这些操作是惰性的并且延迟到实际访问结果为止。

或者您也可以更改

List<Map<String, Object>> _work;

Iterable<Map<String, Object>> _work;

答案 1 :(得分:0)

使用 Dart 2.x ,您还可以尝试将MappedListIterable强制转换为List并返回toList(),以简单的单行命令解决您的问题:

(dictionary['key'] as List).map((item)=> {}).toList();