Javascript 我怎样才能把手风琴关上?
需要一些头脑风暴的想法,基本上就像你在代码中看到的,当我点击手风琴的标题时,索引会传递标题。由于类名中的“active”属性,手风琴关闭。现在我想实现一个功能,如果你点击一个已经打开的手风琴,它就会关闭。我尝试了很多事情,但都没有找到解决办法 提前谢谢Javascript 我怎样才能把手风琴关上?,javascript,reactjs,semantic-ui,Javascript,Reactjs,Semantic Ui,需要一些头脑风暴的想法,基本上就像你在代码中看到的,当我点击手风琴的标题时,索引会传递标题。由于类名中的“active”属性,手风琴关闭。现在我想实现一个功能,如果你点击一个已经打开的手风琴,它就会关闭。我尝试了很多事情,但都没有找到解决办法 提前谢谢 const Accordion = ({ accordionInfo }) => { const [open, setOpen] = useState(null); const onTitleClick = (index) =&g
const Accordion = ({ accordionInfo }) => {
const [open, setOpen] = useState(null);
const onTitleClick = (index) => {
setOpen(index);
};
const accordion = accordionInfo.map((info, index) => {
const active = open === index ? 'active' : false;
return (
<div key={info.title}>
<div className='ui styled accordion'>
<div
className={`${active} title`}
onClick={() => onTitleClick(index)}>
<i className='dropdown icon'></i>
{info.title}
</div>
<div className={`${active} content`}>
<p>{info.description}</p>
</div>
</div>
</div>
);
});
return <div>{accordion}</div>;
};
const Accordion=({accordionInfo})=>{
const[open,setOpen]=useState(null);
const onTitleClick=(索引)=>{
setOpen(索引);
};
const accordion=accordioinfo.map((信息,索引)=>{
const active=open==索引“active”:false;
返回(
onTitleClick(索引)}>
{info.title}
{info.description}
);
});
返回{accordion};
};
我认为,如果索引与open
相同,则将open
设置为null
,应该满足您的需要
比如:
const onTitleClick = (index) => {
setOpen(index === open ? null : index);
};