ant-design-vue的奇怪bug<a-menu>

不知道为什么在做头部导航栏时,想在导航栏靠右侧加一个登录a标签,却发生了如图的bug

原先的导航栏

层级结构类似为

<a-menu
       
        theme="dark"
        mode="horizontal"
        :style="{ lineHeight: '64px' }"
      >
      
        <a-menu-item key="/home">  
            首页   
        </a-menu-item>
         <a-menu-item key="/about">
              关于我们
        </a-menu-item>
</a-menu>

加个a标签

<a-menu
       
        theme="dark"
        mode="horizontal"
        :style="{ lineHeight: '64px' }"
      >
         
            <a-menu-item key="/home">  
                首页   
            </a-menu-item>
             <a-menu-item key="/about">
                  关于我们
            </a-menu-item>
         
       
            <a  class="login-menu">
                <span>登录</span>
            </a>
       
</a-menu>

就出现了a标签显示两遍且在最前面显示的问题。

笔者百思不得其解,大概问题应该就出在版本上了,笔者用button代替a标签,发现依然存在这样的问题。也就是这个版本存在<a-menu>如果嵌套除<a-menu-item>别的标签,就会重复两遍。

笔者的版本不能动,因为一些标签是这个版本对应的,防止出现其他bug,只能用document手动清除。以下是解决办法。(非常希望看到这的大佬如果能看出我不是版本问题,或者有更好的解决办法能够提出来)

首先样式,我们用两个div,分别嵌套,这样就可以使<a>和<a-menu-item>标签互不影响

<a-menu
       
        theme="dark"
        mode="horizontal"
        :style="{ lineHeight: '64px' }"
      >
         <div>
            <a-menu-item key="/home">  
                首页   
            </a-menu-item>
             <a-menu-item key="/about">
                  关于我们
            </a-menu-item>
         </div>
        <div class="unque">
            <a  class="login-menu">
                <span>登录</span>
            </a>
        </div>
</a-menu>

给<a>样式设置右浮动,父div一定设置具体宽度

 .unque{
    width:700px !important
  }
 .unque .login-menu {
    float: right !important;
    color: white !important;
    padding-right: 10px;
   
  }

然后我们就来手动清除document结点,肯定是在onMounted函数中。注意不是清除a,而是清除整个div。

  onMounted(()=>{
    let elements=document.getElementsByClassName("unque") 
    elements[0].remove();    
  })

运行一下就发现可以了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值