我在Firestore中有一个收藏。它有一个字段数组,我正试图从Firestore获取该数组并将其分配给flutter中的列表。我的收藏如下
我从Firestore获取数据的代码
List<Offset> pointlist = <Offset>[];
getdata() async{
await Firestore.instance.collection("points").document('biZV7cepFJA8T6FTcF08').get().then((value){
setState(() {
List<Offset> pointlist = List.from(value.data['point']);
});
});
}
@override
void initState() {
super.initState();
getdata();
}
我收到此错误类型'String'不是'Offset'类型的子类型
您做错的事情是这样的:
// You have initialised your List as a Offset Object Type
List<Offset> pointList;
其次,
String
如果您仔细查看该Firebase,则分配的数据是。
"Offset(x,y)"
最后,尝试将
String
值分配给List
类型为Offset class/object
如果您想使事物起作用,则可以使
List
类型为String
,然后将其添加到List
List<String> pointlist = List.from(value.data['point']);
或首先像这样将数据添加到偏移对象,然后将其传递到列表
List<Offset> pointList = <Offset>[];
getdata() async{
await Firestore.instance.collection("points").document('biZV7cepFJA8T6FTcF08').get().then((value){
setState(() {
// first add the data to the Offset object
List.from(value.data['point']).forEach((element){
Offset data = new Offset(element);
//then add the data to the List<Offset>, now we have a type Offset
pointList.add(data);
});
});
});
}
概要
总是找你给到的数据类型List
,如果你尝试添加这是不是一个类型的数据T
的List<T>
,你总是会得到类型不匹配的这个错误。希望这将使您对编程有所了解并获得一些基本概念。保持学习 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句