vue+element NavMenu 導航菜單 選中狀態失效 解決方法

在這裏插入圖片描述
問題:左側菜單,選中狀態失效,1.路由跳轉過來,選中失效;2.刷新頁面失效

解決方法

1.路由跳轉(NavMenu子菜單沒有v-if)+刷新
app.vue

//html
<el-menu
   router
   ref='menu'
   :default-active='$route.path' //刷新
   class="el-menu-vertical-demo"
   background-color="#002140"
   text-color="#fff"
   active-text-color="#ffd04b">

   <el-submenu index="1">
     <template slot="title">
       <i class="el-icon-cold-drink"></i>
       <span>米粒姐</span>
     </template>
       <el-menu-item index="/CallList">通話回推記錄</el-menu-item>
       <el-menu-item index="/CallRecordList">通話記錄</el-menu-item>
   </el-submenu>
 </el-menu>

//js
  watch: {
    $route() {
      let i = this.$route.path;
      setTimeout(() => { //路由跳轉
        this.$refs.menu.activeIndex = i
      }, 100)
    }
  }

2.路由跳轉(因爲NavMenu有些子菜單會加上v-if,權限控制時候經常發生)+刷新

//html
<el-menu
   router
   ref='menu'
   :default-active='$route.path' //也可以註銷 刷新
   class="el-menu-vertical-demo"
   background-color="#002140"
   text-color="#fff"
   active-text-color="#ffd04b">

   <el-submenu index="1">
     <template slot="title">
       <i class="el-icon-cold-drink"></i>
       <span>米粒姐</span>
     </template>
       <el-menu-item index="/CallList">通話回推記錄</el-menu-item>
       <el-menu-item index="/CallRecordList">通話記錄</el-menu-item>
   </el-submenu>
 </el-menu>

//js
mounted () {
    setTimeout(() => { //刷新
        this.$refs.menu.defaultActive = localStorage.getItem('index')
      }, 100)
  },
  watch: {
    $route() {
      let i = this.$route.path;
      localStorage.setItem('index',i) //刷新
      setTimeout(() => { //路由跳轉
        this.$refs.menu.activeIndex = i
      }, 100)
    }
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章