我想遍歷一個物件陣列來獲取特定的id,然后在一個組件中渲染它的資料,為什么它不能被映射,這里有什么問題?
const projectData = projects.find(element => {
return element.id === projectId;
});
return (
{projectData.map(project => {
return <ProjectData key={project.id} {...project}></ProjectData>;
})}
)
uj5u.com熱心網友回復:
find正在回傳一個null或一個物件。你需要一個陣列來遍歷地圖。filter改為使用運算子
const projectData = projects.filter(element => {
return element.id === projected;
});
uj5u.com熱心網友回復:
該find()方法回傳提供的陣列中滿足提供的測驗函式的第一個元素。如果沒有值滿足測驗函式,undefined則回傳。
所以你不需要map用于渲染。
const projectData = projects.find(element => {
return element.id === projectId;
});
return (
{projectData && <ProjectData key={projectData.id} {...projectData}></ProjectData>}
)
如果有很多元素滿足測驗功能請使用filter方法,而不是find方法。在這種情況下,回傳值是陣列,所以你應該map用于渲染。
const projectData = projects.filter(element => {
return element.id === projectId;
});
return (
{projectData.map(project => {
return <ProjectData key={project.id} {...project}></ProjectData>;
})}
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534696.html
