您可以存储一组布尔值,而不是在 closeTabToggle 中存储单个布尔值。
const [toggleArray, setToggleArray] = useState([false, false, false]);
每个布尔值都可以对应于您的每个可点击图标。如果您的所有图标都是相同的组件,您可以映射到 toggleArray 并为每个项目渲染一个图标。
{toggleArray.map((item, i) => (
<img key={i} src={upArrow} alt="" onClick={() => {
handleIconClick(i);
}} />
))}
handleIconClick 看起来像这样:
const handleIconClick = (i) => {
const temp = [...toggleArray];
temp[i] = !temp[i];
setToggleArray(temp);
};
因此,单击图标将更改与 toggleArray 中具有相同索引的相应布尔值。
最后,更改 Form.Group 元素的 classNames。
<Form.Group className={toggleArray[0] ? `closed-tab-true` : ''}/>
<Form.Group className={toggleArray[1] ? `closed-tab-true` : ''}/>
<Form.Group className={toggleArray[2] ? `closed-tab-true` : ''}/>