微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MappedListIterable 不是 List 类型的子类型

如何解决MappedListIterable 不是 List 类型的子类型

我是 Flutter 的新手,我正在尝试开发一个应用程序,该应用程序从我的 api 动态获取数据到数据表。我尝试了很多方法,但我没有更进一步。我的错误是:

type 'MappedListIterable<Items,DaTarow>' is not a subtype of type 'List<DaTarow>'

我寻找了不同的解决方案,主要是想出了我应该把它变成一个列表的解决方案。但我已经这样做了。这是我的 _getItems 方法。它在 initState 中被调用。该方法位于dataTable.dart

  _getItems() {
    API.getItems().then((response) {
      setState(() {
        Iterable list = json.decode(response.body);
        logger.d(list);
        items = list.map((model) => Items.fromJson(model)).toList();
        logger.d(items);
      });
    });
  }

这是我的 apicall,位于文件 apiCall.dart

const baseUrl = "http://robopi:5001";

class API {
  static Future getItems() {
    var url = baseUrl + "/store";
    return http.get(url);
  }
}

这是我的 Items.dart

class Items {
  String anzahl;
  String name;
  var logger = Logger();

  Items(String anzahl,String name) {
    this.anzahl = anzahl;
    this.name = name;
  }

  Items.fromJson(Map json)
      : anzahl = json.values.toString(),name = json.keys.toString();

  Map toJson() {
    return {'anzahl': anzahl,'name': name};
  }
}

这是我的数据表,也在 dataTable.dart 文件

@override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
        child: DataTable(
      columns: [
        DataColumn(label: Text("Anzahl")),DataColumn(label: Text("Name")),DataColumn(label: Text("Delete?")),],rows: items.map((item) => DaTarow(cells: [
            DataCell(Text(item.anzahl)),DataCell(Text(item.name)),DataCell(IconButton(
              icon: Icon(Icons.delete),onpressed: () {},))
          ])),));
  }

这是我的 API 答案

[
    {
        "Python Buch": 1,"Wasser": 1
    }
]

如果您有解决方案,最好能解释一下。 谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。