对此有点纠结。我有一个json文件,看起来像下面这样,数组中嵌套了许多项。
"projects": [
{
"projectOne": {
"id": "id1",
"company": "company1",
"heading": "heading",
"link": "link",
"heroImage": "imageLink"
}
},
{
"projectTwo": {
"id": "id2",
"company": "company2",
"heading": "heading",
"link": "link",
"heroImage": "imageLink"
}
},
我想映射每个项目,所以我用它来访问JSON中的项目。我想为每一个命名,以便以后在其他地方更容易访问。
const projects = props.cmsData.projects
{projects.map(project => {
return <WorkGridItem {...project} key={project.id} />
})}
然后在我的组件中,我使用了这个
export default function WorkGridItem(props) {
return (
<div className={`${styles.item} fadeIn`} id={props.id}>
<div>
{props.heroImage && (
<div className={`${styles.imageContainer}`}>
<Image
src={props.heroImage}
fill
alt={props.id} />
</div>
)
}
</div>
然而,它并没有访问元素。我大概知道为什么,因为它实际上只是通过标题“projectOne”、“projectTwo”等进行映射,但我不知道如何让它进入元素以获取id和heroImage。