如何在类型转换中修复类型'_InternalLinkedHashMap <dynamic,dynamic>'不是'List <dynamic>'类型的子类型

安东·施拉奇(Anton Schrage)

我创建了一个方法,当我构建它时,出现此错误:

type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'List<dynamic>' in type cast

然后我删除了方法,错误仍然存​​在。

这是我的代码:

class Produkt{
  String name;
  int anzahl;

  Produkt({
    this.name,
    this.anzahl,
  });

  factory Produkt.fromJson(Map<String, dynamic> parsedJson){
    return Produkt(
        name:parsedJson['Name'],
        anzahl:parsedJson['Anzahl']
    );
  }

  Map<String, dynamic> toProduktJson() =>
  {
    "Name" : name,
    "Anzahl" : anzahl
  };
}

类产品列表

class ProduktList{
  final List<Produkt> produkte;

  ProduktList({
    this.produkte,
  });

  factory ProduktList.fromJson(Map<String, dynamic> parsedJson){
    var list = parsedJson["Produkte"] as List;
    List<Produkt> produkte = list.map((i) => Produkt.fromJson(i.cast<String, dynamic>())).toList();

    return ProduktList(
        produkte: produkte,
    );
  }

  Map<String, dynamic> toProdukteJson() =>
  {
    "Produkte" : [
      produkte[0].toProduktJson(),
      produkte[1].toProduktJson(),
    ]
  };
}

我认为错误来自这里,但我不确定:

datenUebertragen(int index, AsyncSnapshot<QuerySnapshot> snapshot, ProduktList produkte){

    Firestore.instance.runTransaction((transaction) async{
      await transaction.update(
      Firestore.instance.collection("Benutzer").document("Anton").collection("Einkaufsliste").document(
        snapshot.data.documents[index].documentID),
        produkte.toProdukteJson()
      );
  }
);
 }

我在IconButton onPressed上调用此方法。谁能帮我?

谢谢

编辑:

我这样称呼它:

ProduktList produkte = new ProduktList.fromJson(snapshot.data.documents[index].data);

数据如下:

{Produkte: [{Anzahl: 201, Name: Zucker}, {Anzahl: 10, Name: Backpulver}]}

编辑:

在此处输入图片说明

看起来像这样!

编辑:

在此处输入图片说明

地狱战士

尝试更改此:

 var list = parsedJson["Produkte"] as List;

对此:

 final List list = parsedJson["Produkte"] as List;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章