Dart ';在何处<;地图<;动态,动态>&燃气轮机';不是类型为';列表<;地图<;动态,动态>&燃气轮机';
有人请帮忙。。。我快疯了 如果我有:Dart ';在何处<;地图<;动态,动态>&燃气轮机';不是类型为';列表<;地图<;动态,动态>&燃气轮机';,dart,exception,dart-map,Dart,Exception,Dart Map,有人请帮忙。。。我快疯了 如果我有: void main() { List<Map> people = []; people.add({'name': 'Patrick', 'age': 56}); people.add({'name': 'Jeannette', 'age': 55}); print(people.where((person) => person['name'] == 'Patrick')); } void main(){ 列出人=[];
void main() {
List<Map> people = [];
people.add({'name': 'Patrick', 'age': 56});
people.add({'name': 'Jeannette', 'age': 55});
print(people.where((person) => person['name'] == 'Patrick'));
}
void main(){
列出人=[];
添加({'name':'Patrick','age':56});
添加({'name':'Jeannette','age':55});
打印(people.where((person)=>person['name']=='Patrick');
}
正如预期的那样,输出为:
({姓名:帕特里克,年龄:56})
但是如果我把where放在一个类中,像这样:
class People {
List<Map> people = [];
void add(Map data) {
people.add(data);
}
List<Map> get filtered {
return people.where((m) => m['name'] == 'Patrick');
}
}
void main() {
People people = People();
people.add({'name': 'Patrick', 'age': 56});
people.add({'name': 'Jeannette', 'age': 55});
print(people.filtered);
}
班级人员{
列出人=[];
无效添加(地图数据){
添加(数据);
}
列表被过滤{
返回人物。其中((m)=>m['name']=='Patrick');
}
}
void main(){
人=人;
添加({'name':'Patrick','age':56});
添加({'name':'Jeannette','age':55});
打印(人。过滤);
}
我得到:
未处理的异常:
类型“WhereIterable”不是类型“List”的子类型
#0人(file:///C:/flutter/apps/mapDB/scratch.dart:9:5)
#1主要(file:///C:/flutter/apps/mapDB/scratch.dart:19:16)
#2\u延迟入口点调用。(省道:隔离补片/隔离补片。省道:283:19)
#3.\u RawReceivePortImpl.\u handleMessage(dart:isolate patch/isolate\u patch.dart:184:12)people。其中(…)
返回一个Iterable
,但您的筛选的获取程序被声明为返回一个列表。更改getter以返回Iterable
,或者使用people.where(…).toList()
从Iterable
显式创建一个列表。现在分类