Javascript 如何将从firestore获取的文档传递到react中的本地状态

Javascript 如何将从firestore获取的文档传递到react中的本地状态,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我在firebase firestore中有一些文档。 我正在使用这个javascript函数获取这些 const fetchName=async()=>{ log(“fetchName已激发”); 常量快照=等待数据库 .收集(“用户”) .doc(用户?.uid) .收集(“详情”) .doc(“数据”) .get(); //数据是一个局部状态变量 //SetData用于操作数据 setData(snapshot.data()); log(“快照数据:”,snapshot.Data());

我在firebase firestore中有一些文档。 我正在使用这个javascript函数获取这些

const fetchName=async()=>{
log(“fetchName已激发”);
常量快照=等待数据库
.收集(“用户”)
.doc(用户?.uid)
.收集(“详情”)
.doc(“数据”)
.get();
//数据是一个局部状态变量
//SetData用于操作数据
setData(snapshot.data());
log(“快照数据:”,snapshot.Data());
log(“获取的数据:”,数据);

};
如果您担心
fetchName
中的
console.log
第二行,那么您的想法是错误的

所以状态更新是异步的

比如说,

const handleEvent = e => {
    setState(e.target.value);
    console.log(state);  
}
这不会记录最新值-这是因为状态更新是异步的,因此状态更新后的同步行为不应依赖于状态变量来获取最新值


要获得更深入的解释,请检查和

您如何知道这一点-
但它没有将其分配给setData()
?我正在将console.log分配给snapshot.data()和data。然后我看到snapshot.data()有我想要的数据,但是setData没有启动,我在DataSorry中没有任何内容,这些文章刚刚在我的脑海中闪过。我只知道我让react决定何时更新组件,状态更新是异步的。普拉斯能把整个事情搞定。确切地说,我做错了什么,需要做什么来修复这个问题我可以在这里使用forceUpdate(),但我不想强制更新它