【问题标题】:Firestore query error: Object are not valid as a react childFirestore 查询错误:对象作为反应子项无效
【发布时间】:2021-02-10 01:08:52
【问题描述】:

我正在尝试从 firestore 进行查询:我想将具有相同字段 ID 的集合 Mission 中的所有字段放入 Clients/1/Missions(在 firestore 和查询代码下方)。

我尝试过这样做,但出现了这个错误:

对象作为 React 子对象无效(找到:具有键 {_U、_V、_W、_X} 的对象)。如果您打算渲染一组子项,请改用数组

这是我的代码:

const GoalScreen = async (props) => {
  IDUserNum = 1;
  IDUser = IDUserNum.toString();
  if (IDUser) {
    const array = [];
    const a = await firebase.firestore().collection('Clients').doc(IDUser).collection('Missions').get();
    if(!a) {
      return(
        <View><Text>ciao</Text></View>
      )
    }
    a.forEach((IDMission) => {
      const b = a.doc(IDMission).get().ID_Mission;
      const c = firebase.firestore().doc(b).data();
      array.push[c];
      console.log(c);
    })
      return (
        <View style={styles.container}>
  
        <Text style={styles.loginText}>Here the should be the goals</Text>
  
        </View>
      );
  } 
  return (
    <View><Text>orso</Text></View>
  )
}

Firestore 的此处字段

【问题讨论】:

  • 我不认为这个错误不是由于火力。该错误表示 react 无法渲染对象,因为它只接受 JSX 元素。你能告诉我们你在哪里使用从firebase检索到的数据吗?另外,你能console.log吗?这样我们就可以看到错误发生在 React 的哪个位置,以及你是否正确接收了数据。
  • 我还没有使用它们,我只是想做一些测试。无论如何,我用函数的完整代码和错误屏幕更新了问题
  • 我无法理解您要执行的查询。为了更好地理解,你能不能换个方式解释一下?

标签: javascript reactjs firebase react-native google-cloud-firestore


【解决方案1】:

哦,好的,有了额外的数据,我可以提供更好的帮助。问题是您使用的是 forEach,它不返回任何内容,因此组件不会收到任何要呈现的内容。尝试使用 .map,你至少应该解决第一个错误。

【讨论】:

  • 我尝试过这样做,但还是不行:a.map((IDMission) => { const b = a.doc(IDMission).get().ID_Mission; const c = firebase .firestore().doc(b).data(); array.push[c]; console.log(c); })
猜你喜欢
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
相关资源
最近更新 更多