我正在制作我的作品集,我有一页列出了我所有的存档项目。我有10多个项目。每个项目看起来都完全相同,只是使用了 diff info/images:
<div>
<h1> Title </h1>
<h1> Image </h1>
<h1> Tech Stack </h1>
<button onClick={()=> this.expandDropdown()}>Tech Stack</button>
</div>
onClick 按钮触发一个函数,将 expand 的状态从 false 更改为 true:
expandDropdown =()=> {
this.setState({
expand: !this.state.expand
})
}
它在冒泡(?),所以当我单击一个按钮时,它们都会展开。我的代码是 245 行,我认为这太长了,所以与其制作一个数组来模拟我拥有的项目数量或为每个项目硬编码一个 ID,我该如何简化我的代码?我觉得我应该导入项目列表,然后映射它们。我不确定如何前进。
编辑:目录:
我正在使用 react-router-dom 所以父级只是我的切换页面,它不处理状态。我有:
|App.js
|- Switch Page (router)
| -- Best Projects(managing state)
| -- Career Timeline
| -- Archived Projects(managing state) <- expansion is here w/all projects
“最佳项目”和“归档项目”都是类。
编辑 2:导出项目:
import React from "react";
import profilePhoto from "../../photos/IMG_2881.JPG";
import salAndCheong from "../../photos/salAndCheong.jpg";
import byeSal from "../../photos/goodByeSal.jpg";
import bike from "../../photos/bike.jpg";
import style from '../../styles/main.module.css'
export default{
compo: [
<img onMouseEnter={()=>this.imageHover()} onMouseOut={()=>this.imageHover()} className={style.noHover} src='../../photos/IMG_2881.JPG' alt="" />,
<img onMouseEnter={()=>this.imageHover()} onMouseOut={()=>this.imageHover()} className={style.noHover} src={salAndCheong} alt="" />,
<img onMouseEnter={()=>this.imageHover()} onMouseOut={()=>this.imageHover()} className={style.noHover} src={bike} alt="" />,
<img onMouseEnter={()=>this.imageHover()} onMouseOut={()=>this.imageHover()} className={style.noHover} src={byeSal} alt="" />,
]
}e