我创建了一个方法,当我构建它时,出现此错误:
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
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}]}
编辑:
看起来像这样!
编辑:
答案 0 :(得分:1)
尝试更改此内容:
var list = parsedJson["Produkte"] as List;
对此:
final List list = parsedJson["Produkte"] as List;