参数类型 'Object?' 无法分配给参数类型 'Map<dynamic, dynamic>'。获取X
The argument type 'Object?' can't be assigned to the parameter type 'Map<dynamic, dynamic>'. GetX
所以基本上我对这种 'Object?' 类型感到沮丧,我已经尝试在核心文件中更改它的类型,但我担心将来会导致奇怪的行为。这是我的代码任何形式的帮助将不胜感激
class HomeViewModel extends GetxController{
List<CategoryModel> get categorymodel => _categorymodel;
late DocumentSnapshot doc;
List<CategoryModel> _categorymodel = [];
final CollectionReference _categoryCollectionRef =
FirebaseFirestore.instance.collection('categories');
HomeViewModel(){
getCategory();
}
getCategory()async{
_categoryCollectionRef.get().then((value) {
for(int i = 0; i<value.docs.length;i++){
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
}
});
}
}
这个来自我的模型 class:
class CategoryModel {
late String name, image;
CategoryModel({required this.name, required this.image});
CategoryModel.fromJson(Map<dynamic, dynamic> map) {
if (map == null) {
return;
}
name = map['name'];
image = map['image'];
}
toJson() {
return {
'name': name,
'image': image,
};
}
}
您需要指定您希望从 DocumentSnapshot
获得的数据类型。
更改此行:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
对此:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data() as Map<String, dynamic>));
所以基本上我对这种 'Object?' 类型感到沮丧,我已经尝试在核心文件中更改它的类型,但我担心将来会导致奇怪的行为。这是我的代码任何形式的帮助将不胜感激
class HomeViewModel extends GetxController{
List<CategoryModel> get categorymodel => _categorymodel;
late DocumentSnapshot doc;
List<CategoryModel> _categorymodel = [];
final CollectionReference _categoryCollectionRef =
FirebaseFirestore.instance.collection('categories');
HomeViewModel(){
getCategory();
}
getCategory()async{
_categoryCollectionRef.get().then((value) {
for(int i = 0; i<value.docs.length;i++){
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
}
});
}
}
这个来自我的模型 class:
class CategoryModel {
late String name, image;
CategoryModel({required this.name, required this.image});
CategoryModel.fromJson(Map<dynamic, dynamic> map) {
if (map == null) {
return;
}
name = map['name'];
image = map['image'];
}
toJson() {
return {
'name': name,
'image': image,
};
}
}
您需要指定您希望从 DocumentSnapshot
获得的数据类型。
更改此行:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
对此:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data() as Map<String, dynamic>));