javascript - 如何在 React 中数据获取完成后设置状态
问题描述
arrayOfIds.forEach((id) => {
firestore
.collection("foos")
.doc(id)
.get()
.then((foo) => {
fooArray.push(foo.data());
});
});
console.log(fooArray);
// some output
this.setState({ foos: fooArray });
// but nothing passed to the state
当我 console.log fooArray 我可以看到所有数据但无法将其分配给状态
解决方案
for(let id of arrayOfIds) {
let foo = await firestore
.collection("foos")
.doc(id)
.get();
fooArray.push(foo.data());
}
console.log(fooArray);
this.setState({ foos: fooArray });
这将使用正确的数据设置状态 - 您没有等待 firestore 返回的 Promise 但它应该可以工作。
推荐阅读
- angular - Angular 6 (jsPDF & jsBarcode) 中的 PDF 上未显示条码
- symfony - 如何更改类别实体的树视图顺序
- c++ - 将 boost (asio) 错误消息翻译成自然语言
- xamarin.forms - 将搜索词从 SearchHandler 传递到 Xamarin Forms 4 中的 ContentPage
- typescript - TypeScript:类型化数组的“TypedArray”接口
- android - 华为不使用谷歌地图 API v2 更新位置
- php - 找不到“npm run dev”错误的解决方案
- javascript - 如何确保 TypeScript 中的执行顺序
- rust - 如何在 Rust 过程宏中获取 impl 块的类型?
- c# - Net Core 开发依赖场景