firebase React函数不等待来自Firestore的数据

ttisahbt  于 2023-01-27  发布在  React
关注(0)|答案(1)|浏览(99)

每次我运行下面的代码时,React似乎都在继续,并且没有像我在setCurrentDevice中要求的那样填充CurrentDevice。当在最后一行询问时,它只是在日志中抛出一个undefined。当我运行第一个console.log时,它似乎确实记录了正确的设备细节。我如何在继续之前使react填充状态CurrentDevice?

const q = query(collection(db, 'DeviceDetails'), where('serialNo', '==', SerialNo))

    const querySnapshot = await getDocs(q)
    querySnapshot.forEach((doc) => {
      // doc.data() is never undefined for query doc snapshots
      setCurrentDevice(doc.data());
      console.log(doc.data());
    })

    console.log(currentDevice);
z2acfund

z2acfund1#

当你更新一个hook作为useState在这个例子中component重新-render与这hook的新value所以currentDevice将得到新value在这下次render它是不可用的尚未.尝试到consol.log('this is a new render and this is my data : ',currentDevice)从这内部你的jsx到更好理解

相关问题