【发布时间】:2020-10-10 15:23:05
【问题描述】:
我是盖茨比的新手。我已经失去了在这里做什么......请帮助我...... 单击按钮时,我只想显示一个元素(h4)。 例如,我有 5 个计划,每个计划都有一个按钮和一个 h4 标签。 当我单击第三个按钮时,只会显示第三个 h4 标签。 正如我的代码所预期的那样,当单击按钮时,它会显示地图的每个元素的 h4 标记。在这种情况下,我有什么办法可以只为地图的一个元素启用/停用该组件? 提前谢谢你。
import React, { useState } from "react"
const TourPage = ({
const [isOpen, setOpen] = React.useState(false)
const toggleOpen = () => {
setOpen(!isOpen)
}
return (
<article>
{plans.map((plan, index) => {
return (
<div key={index}>
<button
className="btn"
onClick={toggleOpen}
> button </button>
<div
className={`${isOpen ? "active" : "inactive"}`}
>
<h4>{plan.iternary}</h4>
</div>
</div>
)
})}
</article>
【问题讨论】:
-
发生这种情况是因为您的渲染循环考虑了 isOpen 状态变量,因为它对于所有索引都是相同的。检查另一个 SO answer
标签: javascript reactjs gatsby use-state array.prototype.map