json - Flutter - 参数类型'Object'不能分配给参数类型'Map'
问题描述
所以我一直在做这个项目,一切都很好,直到我将包迁移到空安全并遇到这个错误。这是代码:
factory AdminDto.fromJson(Map<String, dynamic> json) => _$AdminDtoFromJson(json);
factory AdminDto.fromFirestore(DocumentSnapshot doc) {
return AdminDto.fromJson(doc.data()!).copyWith(id: doc.id);
}
}
有人可以帮我吗?当涉及到 doc.data() 参数时,就会出现问题。我不能完全投入其中。
解决方案
You probably need to explicitly cast doc.data()!
to Map<String, dynamic>
. Like this:
return AdminDto.fromJson(doc.data()! as Map<String, dynamic>).copyWith(id: doc.id);
Or correctly define the generic type of DocumentSnapshot
, like this:
factory AdminDto.fromFirestore(DocumentSnapshot<Map<String, dynamic>> doc) {
return AdminDto.fromJson(doc.data()!).copyWith(id: doc.id);
}
推荐阅读
- javascript - 电子.js | ipcRenderer 和 ipcMain 导致白屏/黑屏
- python - 为什么 tape.gradient 在我的 Sequential 模型中不返回所有内容?
- javascript - 保持复选框选中角度
- sql - 用另一列 postgresql 中的值替换字符串的一部分
- bash - 如何使用 sort 或 awk 对具有相同数量字段但一个字段的值不同的行进行排序?
- docker - 在 Docker 容器中使用 JMeter Prometheus 插件(连接被拒绝)
- python-3.x - 在 Python 中将 XML 文件转换为 CSV 文件
- php - 如何在其方法中自动反映实体字段的变化?
- r - 寻找跨多维数组实现 logSumExp 的更快方法
- c# - 我在 Unity 中删除了“材料”,现在添加到球体的脚本不起作用