【发布时间】:2021-08-21 08:01:51
【问题描述】:
我想从 firestore 获取 3 个不同的东西,因此在我的代码中应用了 3 个 useEffect,其中我的反应不是读取第 3 个 useEffect 中的 map 函数。这里第三个 useEffect 中的地图功能不起作用
代码: 第一次使用效果:
useEffect(() => {
var applications = [];
const hospitals = [];
const studentId = [];
const details = [];
firebaseConfig
.firestore()
.collection("counselor")
.doc(currentUser.uid)
.collection("studentDetails")
.get()
.then((snapshot) => {
snapshot.docs.forEach((detail) => {
let currentID = detail.id;
let appObj = { ...detail.data(), ["id"]: currentID };
details.push(appObj);
details.push(detail.data());
});
setDetails(details);
});
}, []);
第二次使用效果:
useEffect(() => {
const item = [];
details.map((detail) => {
console.log(detail.id);
firebaseConfig
.firestore()
.collection("counselor")
.doc(currentUser.uid)
.collection("studentDetails")
.doc(detail.id)
.collection("studentApplications")
.get()
.then((snapshot) => {
snapshot.docs.forEach((detail) => {
let currentID = detail.id;
let appObj = { ...detail.data(), ["id"]: currentID };
item.push(detail.data().applicationStatus);
setStudentId(item);
});
});
});
setDemo(item);
}, [details]);
第三个使用效果:
useEffect(() => {
demo.map((hii) => {
if (hii === "PaymentFormFilled") {
complete = complete + 1;
setCom(complete);
}
});
}, [demo]);
【问题讨论】:
-
demo的首字母是什么? -
demo 的首字母是一个空数组
标签: reactjs firebase google-cloud-firestore react-hooks