側邊導航欄只展開當前的導航


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