firebase 如何在React Map迭代中查询Firestore

nnvyjq4y  于 12个月前  发布在  React
关注(0)|答案(1)|浏览(134)

我在react组件中迭代一个集合。对于此选项卡的每一行,我需要向firebase进行额外的查询:

<Tbody>
          {households?.map((household) => (
            <Tr key={household.id}>
              <Td>{household.name}</Td>
              <Td>{household.ownerName}</Td>
              <Td>
                <ul>
                  {household.participants.map((participant) => (
                    <li key={participant.userId}>{participant.userName}</li>
                  ))}
                  //Here I need to retrieve another collection from firestore, which is different for each household.
                </ul>
              </Td>
              <Td>
            </Tr>
          ))}
        </Tbody>

字符串
但我找不到方法。
我试过这个:

{
    let invitesRef = collection(
      db,
      "households",
      household.id,
      "invites"
    );
    invitesRef.onSnapshot((invite) => {
      <li key={invite}>{invite}</li>
    })
    return <div></div>;
  }


但我得到了意想不到的令牌,而且它似乎不喜欢常数,...所以我可能走错了路。
我该如何实现这一点?

fnx2tebb

fnx2tebb1#

你不能在UI呈现的时候调用异步API,然后期望在代码中使用这些结果,据我所知没有UI框架支持这种情况。
在React中,你会想要:
1.在组件第一次呈现时开始加载数据。
1.在数据加载时显示“数据正在加载...”指示符。
1.将数据设置为加载数据时的状态。
1.然后触发UI的重新呈现,您可以在其中使用来自状态的数据。
我建议你阅读:

  • State: A Component's Memory中的ReactJS状态
  • Using effects处理步骤1
  • 我的回答是不能在react应用程序中显示来自firestore的数据,这展示了我上面解释的方法的一个例子。

相关问题