首页 > 解决方案 > 从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);

              })
            })

标签: javascriptarraysreact-native

解决方案


要操纵您的状态,您需要调用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>
}

推荐阅读