首页 > 解决方案 > 颤振类型'_CompactIterable>' 不是类型“列表”的子类型'

问题描述

我遇到了这个问题:

类型 '_CompactIterable<List>' 不是类型 'List' 的子类型

当我尝试从列表返回访问列表时:

    List<Map<Project, List<Tasks>>> _data = snapshot.data;

我不知道如何访问 map back 中的索引值"

List<Tasks> _ts = _data[index].values;

这总是会引发错误,例如:

Another exception was thrown: type 'CastIterable<List<Tasks>, dynamic>' is not a subtype of type 'List<Tasks>'

标签: flutter

解决方案


您有一个列表映射列表。并且.valuesgetter 返回一个 Iterable 而不是一个列表。因此,如果您这样做,data[index].values您会得到一个可迭代的列表,而不是任务列表。如果要将这些列表组合成一个列表,可以使用 expand 方法:

data[index].values.expand((l) => l).toList();

不要忘记 toList 或者你仍然有一个 Iterable 并且仍然会得到一个异常

不知道你是如何编译的


推荐阅读