#reactjs
#reactjs
Вопрос:
Вот как мой savedLinksData
массив печатается в моей консоли:
Вот мой код, который пытается получить linkType
значение:
{savedLinksData.map((saved) => {
return <h1>{saved.linkType}</h1>;
})}
Что я делаю не так?
Я думаю, что может быть что-то не так с тем, как я сохранял значения в массиве. Не похоже, что значение находится внутри массива.
Изображение console.log("----->", saved)
const [savedLinksData, setSavedLinksData] = useState([]);
// query for saved links data
useEffect(() => {
if (user) {
async function fetchData() {
const request = await db
.collection("users")
.doc(user)
.collection("saved")
.onSnapshot((snapshot) =>
setSavedLinks(
snapshot.docs.map((doc) => ({ ...doc.data(), id: doc.id }))
)
);
}
fetchData();
} else {
setSavedLinks([]);
}
}, [user]);
useEffect(() => {
if (savedLinks.length > 0) {
let newArray = [];
savedLinks.map((saved) => {
db.collection("users")
.doc(saved.savedUser)
.collection("links")
.doc(saved.savedLinkId)
.get()
.then(function (doc) {
if (doc.exists) {
// console.log("Document data:", doc.data());
newArray.push(doc.data());
// setSavedLinksData([...savedLinksData, doc.data()]);
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
})
.catch(function (error) {
console.log("Error getting document:", error);
});
});
setSavedLinksData(newArray);
}
}, [savedLinks]);
Комментарии:
1. если вы console.log(сохраненный) над вашим оператором return, что это показывает?
2. @Ross Он печатает 6 разных объектов. Разве они не должны быть в массиве? Обновлен весь мой код.
3. Что
console.log(snapshot.docs)
говорит?