iView Menu菜单点击子菜单后父菜单自动折叠怎么解决?
在用iView的Menu组件做侧边栏时遇到个问题,当点击子菜单项后,父菜单会自动收起来。我需要点击子菜单时父菜单保持展开状态,但试过设置openeds和手动控制状态都不管用。
这是我的代码片段,使用的是垂直菜单模式:
<Menu mode="vertical" :open-names="['1']" @on-select="handleSelect">
<Submenu name="1">
<template #title>父菜单</template>
<MenuItem name="1-1">子菜单项</MenuItem>
<MenuItem name="1-2">子菜单项</MenuItem>
</Submenu>
</Menu>
现在的问题是,当点击子菜单1-1后,父菜单1就会收起来。我检查了文档但没找到相关配置项,这种情况下应该怎么处理呢?
:open-names属性并结合事件处理来动态更新展开状态。常见的解决方案是通过监听
@on-open-change事件来维护一个记录当前展开菜单的状态数组,同时在点击菜单项时阻止默认的折叠行为。下面是修改后的代码示例:这里的关键点在于:我们用
openNames来维护当前展开的菜单状态,通过@on-open-change事件实时更新这个状态。这样就能保证点击子菜单时,父菜单保持展开。如果遇到特殊情况还是自动折叠,记得检查是否有其他代码在操作
openNames的值,或者看看样式上是否有影响布局的自定义代码。我之前就踩过坑,因为自定义CSS导致菜单状态显示异常,调了好久才发现问题。