Javascript 我怎样才能把手风琴关上?

Javascript 我怎样才能把手风琴关上?,javascript,reactjs,semantic-ui,Javascript,Reactjs,Semantic Ui,需要一些头脑风暴的想法,基本上就像你在代码中看到的,当我点击手风琴的标题时,索引会传递标题。由于类名中的“active”属性,手风琴关闭。现在我想实现一个功能,如果你点击一个已经打开的手风琴,它就会关闭。我尝试了很多事情,但都没有找到解决办法 提前谢谢 const Accordion = ({ accordionInfo }) => { const [open, setOpen] = useState(null); const onTitleClick = (index) =&g

需要一些头脑风暴的想法,基本上就像你在代码中看到的,当我点击手风琴的标题时,索引会传递标题。由于类名中的“active”属性,手风琴关闭。现在我想实现一个功能,如果你点击一个已经打开的手风琴,它就会关闭。我尝试了很多事情,但都没有找到解决办法

提前谢谢

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);
};