【发布时间】:2021-06-06 11:40:12
【问题描述】:
现在,如果用户单击按钮,我正在尝试渲染元素各自的内容。截至目前,因为一旦我按下按钮,它就会为每个元素创建一个模态,它会打开所有模态,显示最后一个。
我查看了有关此问题的先前问题,非常感谢您提供一些帮助。
例如,一旦我按下该项目卡的按钮以查看有关该项目的更多信息,它只会显示正在映射的数组的最后一个元素的信息。
const [modalIsOpen, setModalIsOpen] = useState(false)
return (
<>
<Grid container
direction="row"
className="Project--Items"
xs={9} >
{projects.map((project) => (
<div key={project.id}className="Project--Card">
<img src={project.image} className="Item--Main--Image"/>
<div className="Card--Text">
<p>{project.name}</p>
<p>{project.description}</p>
</div>
<button onClick={() => setModalIsOpen(true)}>Open Modal</button>
<Modal isOpen={modalIsOpen} onRequestClose={()=> setModalIsOpen(false)}>
<h2>{project.name}</h2>
<p>{project.description}</p>
<div>
<button onClick={() => setModalIsOpen(false)}>Close Modal</button>
</div>
</Modal>
</div>
))}
</Grid>
</>
);
}
【问题讨论】:
-
首先需要在map函数之外声明Modal组件,所以只有一个
标签: javascript reactjs jsx