侧边导航栏只展开当前的导航


antd 实现侧导航栏只展开当前导航,其他关闭,效果如下

 

菜单的数据结构是这样的,子菜单要包含主菜单的名字

antd导航有个openkeys属性和onOpenChange事件,执行onOpenChange事件时,把展开的列表赋值过去

// 选中当前菜单收起其他菜单
  onOpenChange = (openKeys)=>{
    let keysLen = openKeys.length;
    if(keysLen>1){
      var trueOpen = openKeys.filter(item=>{
     // 最后一个是当前展开的,把当前展开以及父导航设置为openkeys
return openKeys[keysLen-1].includes(item) }) this.setState({openKeys:trueOpen}) }else{ this.setState({openKeys:openKeys}) } }

问题,adnt会把所有已经点击过的都传过来,所以只展开当前的,需要把其他的关闭就要确定当前导航的openkes

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM