el-popover 悬浮展示 el-tabs 首次选中效果丢失

一、 问题描述:

在使用 el-popover 时,悬浮的内容包含 el-tabs 组件,el-tabs虽然设置了选中的 key,但因为初次渲染时 悬浮部分还没有被触发展示,选中效果丢失

二、解决方案

  • 利用 el-popover 自带的方法 after-enterafter-leave
  • after-enter :先设置选中的 key 为空,再设置为 默认的 key
  • 若只使用上述 after-enter,则有可能会造成:下一次展示悬浮窗的同时,从别的 key 回到 默认key,这个切换过程是当着用户的面执行的,所以使用 after-leave 使这个过程对用户无感
  • after-leaveafter-enter 共用一个函数体即可

三、代码

父组件
<el-popover
  trigger="hover"
  placement="top"
  width="338"
  @after-enter="enterPopover"
  @after-leave="enterPopover"
>
  <popoverContent ref="refPopoverContent" />
  <template slot="reference">
    <span>11111</span>
  </template >
</el-popover>


methods: {
  enterPopover () {
     const ele = this.$refs['refPopoverContent']
     ele.resetTab()
  }
}
子组件 popoverContent
<el-tabs v-model="activeName">
  <el-tab-pane label="数据目录" name="first">
    11
  </el-tab-pane>
  <el-tab-pane label="节点机理" name="second">
    22
  </el-tab-pane>
</el-tabs>


data() {
  return {
    activeName: 'first'
  }
},
methods: {
  // 父组件控制tab选中(先设置为空,再设置为默认的 key)
  resetTab () {
    this.activeName = ''
    this.activeName = 'first'
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值