flutter - 参数类型“对象?” 不能分配给参数类型“地图”'。获取X
问题描述
所以基本上我对这个“对象”感到沮丧?类型,我已经尝试在核心文件中更改其类型,但我担心将来会引起奇怪的行为。继承人我的代码任何帮助将不胜感激
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,
};
}
}
解决方案
您需要指定您期望从DocumentSnapshot
.
更改此行:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data()));
对此:
_categorymodel.add(CategoryModel.fromJson(value.docs[i].data() as Map<String, dynamic>));
推荐阅读
- python - Telethon:不返回某些群聊消息
- reactjs - 反应路由器没有在传奇中重定向
- python - 为什么 python 4 android 不起作用?
- javascript - react-query 不会停止重试获取 API
- json - gcloud ai-platform predict 的非 json 输出。解析非 json 输出
- c - 在struct中定义指向int指针数组的指针,如何访问这些int?
- groovy - 如何在 Groovy 中使用阿拉伯语字符?
- c++ - std::iterator_traits 中的 iterator_category 与 iterator_category() 有什么区别
- javascript - 如何使用 React 测试库通过动态 testid 获取组件
- drupal - 如何在文章节点中添加内容(段落模块)