ant-design-vue 刷新页面导航栏自动定位到首页问题

 问题:在vue项目中使用了vue-router,页面刷新、浏览器前进后退都会导致导航菜单首页高亮显示

在导航栏点击Help,Help高亮,刷新页面后,Home高亮。每次浏览器前进后退时,导航栏也会自动定位到首页。

 有问题的代码:

<a-menu 
    theme="light"
    mode="horizontal"
    :defaultSelectedKeys="['1']"
>
    <a-menu-item key="1"><router-link to="/">Home</router-link></a-menu-item>
    <a-menu-item key="2"><router-link to="/search">Search</router-link></a-menu-item>
    <a-menu-item key="3"><router-link to="/help">Help</router-link></a-menu-item>
    <a-menu-item key="4"><router-link to="/contact">Contact</router-link></a-menu-item>
</a-menu>

 解决方法: 

查看ant-design-vue文档关于menu导航菜单的API

注意看Menu组件的两个属性:selectedKeysdefaultSelectedKeys
selectedKeys:当前选中的菜单项 key 数组
defaultSelectedKeys:初始选中的菜单项 key 数组
这两个属性为二选一使用,如果同时使用时,defaultSelectedKeys无效,将会以selectedKeys为准。

如果你只是希望指定一个初始化选中的菜单项,请使用defaultSelectedKeys
如果你需要每次通过传入不同的props改变Menu组件的选中项,请使用selectedKeys

于是,我使用了selectedKeys传入this.$route.path属性,解决了问题。

最终代码:


<a-menu
    theme="light"
    mode="horizontal"
    :selectedKeys="[this.$route.path]"
>
    <a-menu-item key="/"><router-link to="/">Home</router-link></a-menu-item>
    <a-menu-item key="/search"><router-link to="/search">Search</router-link></a-menu-item>item>
    <a-menu-item key="/help"><router-link to="/help">Help</router-link></a-menu-item>
    <a-menu-item key="/contact"><router-link to="/contact">Contact</router-link></a-menu-item>
</a-menu>

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值