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)
    }
  }
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘斩仙的笔记本

富贵险中求

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值