代码之家  ›  专栏  ›  技术社区  ›  Elichy

切换手风琴项目

  •  0
  • Elichy  · 技术社区  · 3 年前

    我有一个React Js手风琴,当我点击一个项目时,面板会打开,要关闭它,你必须点击另一个项目,我需要添加在点击后关闭活动面板的可能性 AccButton

    这是我的代码:

    const { active, setActive } = useContext(AccordionContext)
    
    const eventHandler = (e, index) => {
        e.preventDefault();
        setActive(index);
    }
    
    return (
        <AccItem id={props.index}>
            <AccButton
                onClick={(e) => eventHandler(e, props.index)}
                aria-expanded={ active === props.index ? 'true' : 'false' }
                aria-disabled={ active === props.index ? 'true' : 'false' }
            >
                <AccItemTitle>
                    {props.description}
                </AccItemTitle>
            </AccButton>
    
            <AccPanel elWidth={props.elWidth}>
                <PanelToggle toggle={active === props.index}></PanelToggle>
            </AccPanel>
    
        </AccItem>
    )
    
    0 回复  |  直到 3 年前
        1
  •  2
  •   benada002    3 年前

    如果 active !== index 否则设置为活动 null 。像这样:

    const eventHandler = (e, index) => {
        e.preventDefault();
        setActive(index !== active ? index : null);
    }