这里 userlist 正在立即更新上述逻辑的正确代码 我正在尝试从 firestore 获取用户列表,而不是遍历该列表以从不同集合中查找用户详细信息
useEffect(() => {
db.collection("following/" + Credens.uid + "/userFollowing")
.get()
.then((snapshot) => {
followingList = snapshot.docs.map((value, ind) => value.data());
})
.then(() => {
if (followingList.length > 0) {
followingList.map((value, index) => {
db.collection("Postss")
.doc(value.useruid)
.collection("MovieWatched")
.get()
.then((snaps) => {
// let Detail = snap.data()
let movieidList = snaps.docs.map(
(value) => value.data().postMovieId
);
if (movieidList.includes(MovieId) === true) {
setuserList((prev) => [...prev, value.useruid]);
}
});
});
}
})
.then(() => {
console.log(userList);
userList.map((value, index) => {
db.collection("users")
.doc(value)
.get()
.then((snapshot) => {
setfriendsWatchedData((prev) => [
...prev,
{
usersID: value,
userData: snapshot.data(),
},
]);
});
});
});
// return () => {
// cleanup
// }
}, []);
答案 0 :(得分:1)
为了确保状态确实发生了变化,您可以使用 useEffect() 来监视该状态的变化,例如:
useEffect(() => {
if (userList) {
// userList.map....
}
}, [userList])
可以在 if 语句中指定附加条件。只要状态改变,钩子就会运行。