javascript - 从firebase检索集合时出错反应本机
问题描述
嗨,我是新来的本地人,并且在从 firebase 集合中检索列表时遇到了麻烦。但是当我使用以下代码时,它返回一个错误:
对象作为 React 子对象无效(找到:带有键 {_40、_65、_55、_72} 的对象)。如果您打算渲染一组子项,请改用数组。
请帮助我解决问题,因为我知道我在这里对this.state.items做错了什么
firebase.firestore().collection('myCollection').get().then(x => {
x.docs.map(doc => {
this.state.items.push(doc.data());
});
this.state.items.map(value => {
console.log('my val',value);
})
})
解决方案
要操纵您的状态,您需要调用this.setState()
并设置其新值。就像是 :
this.setState({...doc.data()});
现在,此错误通常来自您的 jsx 的较高父节点(组件返回的“html”)具有超过 1 个子节点的事实。就像是 :
const App = () => {
return (
<div>a node</div>
<div>another node</div>
}
如果是这种情况(map
有时会发生),那么只需用 div 包装您的内容,例如:
const App = () => {
return (
<div>
<div>a node</div>
<div>another node</div>
</div>
}
推荐阅读
- reactjs - Jsplumb对话框在反应形状中插入数据
- angular - 升级到 9.0 和 angular 7 后修复 angular-redux/store
- java - 为什么这种用于计算两个字符的递归 Java 方法有效?
- android - 将 android SimpleExoPlayerView 高度限制为控制按钮
- go - 来自 r.URL.Query() 的键映射不一致
- c++ - 模板和继承问题
- java - Java的谷歌云端点框架的配额问题
- c# - 如何更改 SqlCommandBuilder.InsertCommand 的命令文本?
- python - 配置com端口的Python函数
- sql - 在sql中使用Excel公式