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
显式创建一个
列表。现在分类