【问题标题】:The argument type 'Object?' can't be assigned to the parameter type 'Map<dynamic, dynamic>'. GetX参数类型“对象?”不能分配给参数类型“地图<动态,动态>”。获取X
【发布时间】:2021-08-17 12:33:06
【问题描述】:

所以基本上我对这个“对象”感到沮丧?类型,我已经尝试在核心文件中更改其类型,但我担心将来会导致奇怪的行为。继承我的代码任何形式的帮助将不胜感激

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 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,
};
}
}

【问题讨论】:

    标签: flutter dart google-cloud-firestore flutter-getx


    【解决方案1】:

    您需要指定您期望从DocumentSnapshot 获得的数据类型。

    改变这一行:

      _categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
    
    

    到这里:

      _categorymodel.add(CategoryModel.fromJson(value.docs[i].data() as Map<String, dynamic>));
    
    

    查看migration to cloud_firestore 2.0.0 的指南。

    【讨论】:

    • 你救了我的命!我迷失在这个错误中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2021-09-10
    • 2021-09-21
    • 1970-01-01
    • 2019-01-27
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多