【问题标题】:React JS - Multi level dropdown menuReact JS - 多级下拉菜单
【发布时间】:2020-07-22 15:21:18
【问题描述】:

我有这个example。我的问题很简单:如何一次只打开一个子菜单?

例如:当“菜单 3”打开时,我希望“菜单 2”关闭..

【问题讨论】:

    标签: javascript reactjs drop-down-menu multi-level


    【解决方案1】:

    使用单个值代替activeMenus 状态的数组,如果没有打开菜单,则可以是null。 (并将名称更改为activeMenu。)

    在handleArrowClick 中,如果已经是menuName,则将activeMenu 设置为null,否则设置menuName。

    setActiveMenu(activeMenu === menuName ? null : menuName)

    渲染SubMenu、toggle={activeMenu === menuName}时

    【讨论】:

    • 差不多了,但是“子菜单”呢?那些不再工作了
    • 我意识到你有变量范围的问题。您需要将所有子组件定义移出 MultiMenus 组件。然后每个组件的事件处理程序需要与它的组件一起使用。如果您这样做,您将看到您在另一个组件中读取一个组件的变量的位置,并且您将能够修复它。让我知道你是怎么办的!如果这对您有帮助,请点赞并接受答案
    猜你喜欢
    • 1970-01-01
    • 2021-07-16
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多