vue Element-UI 菜单导航 ,默认激活状态,刷新后才有,怎么回事?

图片描述a.我是用vuex做的。
b.在路由拦截里去改变default-active的值。
c.导航菜单里取到这个路径。
理论上是没问题的,但是!!!
刷新后,当前页面才有选中状态。直接点击菜单没有选中状态。
具体代码
1.store里

 leftNavState: (state, data) => {
    state.leftSelect = data;
},

2.路由拦截里

store.commit('leftNavState',to.path);

3.导航菜单组件里

    <el-menu :default-active="leftSelect" class="leftMenue" router>
        <el-menu-item :index="item.path" v-for="(item, index) in leftNav" :key="index">
            <i class="iconfont" :class="item.icon"></i>
            <span slot="title">{{item.name}}</span>
        </el-menu-item>
    </el-menu>
    
    ...mapState(['leftSelect']),
    ...mapGetters(['leftNav'])

阅读 12.9k
3 个回答

建议使用 watch 选项检测你的 leftSelect

watch: {
    leftSelect: (newValue, oldValue) => {
        ...
    } 
}

谢谢给位回答。问题找到了。希望问题对其他人有帮助。
解决办法:watch里暴力操作ref。

    setTimeout(()=> {
        this.$refs.leftMenue.activeIndex = to.path;
    },100);
    注意  :定时器很重要!!!!!

watch你的路由,然后设置:default-active

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题