首页 > 解决方案 > 如何将地图列表映射到我的自定义类列表中?

问题描述

我正在尝试将地图列表映射到我的自定义“地址”类的对象列表中。但是,如果我运行我的代码,我会收到此错误:

I/flutter (26434): type 'CastList<dynamic, List<Address>>' is not a subtype of type 'List<Address>'

这是我的源代码: listOfMaps 是我从数据库中提取的地图列表;

List<Address> _userAddresses;
_userAddresses = listOfMaps.map((address) {
    return Address(
      firstName: address["firstName"],
      lastName: address["lastName"],
      streetname: address["streetname"],
      houseNumber: address["houseNumber"],
      zipCode: address["zipCode"],
      city: address["city"],
      country: address["country"],
      state: address["state"],
    );
  }).toList().cast<List<Address>>();

标签: flutterdarttypescasting

解决方案


我想你listOfMaps可以List<dynamic>这样做:

var _userAddresses = listOfMaps.map<Address>((m) => Address.fromJson(m)).toList();

在哪里:

Address.fromJson(Map<String, dynamic> jdata) { ... }

我希望它对你有所帮助。


推荐阅读