reactjs - Iterate over array with nested objects
问题描述
PROBLEM: I need to access the linkTitle
values for each object in my array.
Here is how my savedLinksData
array is structured:
And here is my code:
{savedLinksData.map((saved, key) => (
<h1>{saved.linkType}</h1>
))}
Full Code:
// 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]);
console.log("RETURNED LINKS DATA", savedLinksData);
console.log("SAVED", savedLinks);
解决方案
你可以做 {savedLinksData.map((saved, key) => ( <h1>{saved.linkInfo.linkTitle}</h1> ))}
推荐阅读
- python - 无法找到有效的 ngram 文档
- prolog - 如何在打乱的列表中逐个元素地返回而不是让它们一次全部返回?
- spring - Spring集成java dsl错误发现参数类型不明确
- python - python:如果存在于另一个列表中,则比较列表中的值
- python - 我不明白当变量以数字为值时,我的计算如何被读取为 str 而不是整数
- python - 文本文件不会用 open() 打开
- bash - 使用 bash 比较递增编号目录中的文件
- .net - 如何解决与 net core 反应的 Webpack 错误
- json - 将 JSON 值转换为另一个 JSON 形状?
- python - 您如何根据函数运行的次数执行不同的选项?