每次我运行下面的代码时,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);
1条答案
按热度按时间z2acfund1#
当你更新一个
hook
作为useState
在这个例子中component
重新-render与这hook
的新value
所以currentDevice
将得到新value
在这下次render它是不可用的尚未.尝试到consol.log('this is a new render and this is my data : ',currentDevice)
从这内部你的jsx
到更好理解