javascript - 如何在第二次点击时关闭手风琴?
问题描述
我有手风琴组件,它在点击时显示。我在第二次单击时关闭它时遇到问题。目前我点击一次,它会展开,但第二次点击后没有任何变化。谢谢你的帮助
const [activeTab, setActiveTab] = React.useState(props.tabIndex);
const tabs = props.tabs.map((tab) => {
return (
<>
<TabContainer>
<Tab
key={tab.index}
onClick={() => setActiveTab(tab.index)}. //here it opens
className={typeof tab.content === 'string' ? '' : 'unactive-tab'}
>
{tab.name}
</Tab>
</TabContainer>
{tab.index === activeTab ?
<div
id="content"
style={{ width: '100%', margin: '2rem 0' }}
dangerouslySetInnerHTML={{ __html: tab.content as string }}
/>
: null}
</>
);
});
解决方案
也许尝试将您的 onClick 方法更改为此
onClick= {() => {
activTab == tab.index ? setActiveTab(-1) : setActiveTab(tab.index)
})
在活动选项卡与单击的选项卡的当前索引匹配的情况下,我们将其设置为 -1,因此不匹配选项卡(不显示选项卡);否则我们将活动选项卡设置为单击的当前选项卡。
推荐阅读
- button - BS 4 和按钮定位
- reactjs - 在使用 React&TypeScript 接收的数据上更新 Grafana 面板插件
- linkedin - 获取 LinkedIn API 的 3 步身份验证的令牌?
- sql - SQL:如何计算按日期排序的客户端分组的唯一实例?
- python - 缺少可选依赖项“xlrd”。安装 xlrd >= 1.0.0 以获得 Excel 支持 使用 pip 或 conda 安装 xlrd
- kubernetes - 在 RKE 中安装 Argocd
- swiftui - NavigationView 奇怪的与子视图之间的转换
- python - 如何使用 __init__.py 在 python 中导入包
- discord.py - discord.py tasks.loop() 没有执行
- python - 在一个视图中从 2 个不同的请求中收集信息 Django