vant icon indicating copy to clipboard operation
vant copied to clipboard

[Bug Report] 页面使用转场动画 popover定位失效问题

Open jinghh opened this issue 3 years ago • 2 comments

设备 / 浏览器

chrome

Vant 版本

3.0.14

Vue 版本

3.0.11

重现链接

https://jsbin.com/kiburopabi/edit?html,css,js,output

描述问题

第一次进A页面时popover组件可以正常显示,点击跳到b页面,再点击回到A页面时popover组件定位偏移不见了

jinghh avatar Apr 19 '21 07:04 jinghh

这个bug看源代码,我的分析是:当popover 一开始就显示时即重新链接的show为true时,mouted 之后 ,再执行this.$nextTick,仍然没有拿到真实的dom,还是虚拟dom对象。在源码mounted中加了个延时,问题得以解决。 总觉得这个不是解决方法,所以没有提交pr,想请教下 mouted 之后 ,再执行this.$nextTick,为什么仍然没有拿到真实的dom?

2.x分支的源码 57行 修改为

mounted() {
    setTimeout(()=>{
      this.updateLocation();
    }, 500)
  }

改成上述问题得到解决。

可在71行中,添加测试打印

createPopper() {
      console.log(this.$refs.wrapper,  this.$refs.popover.$el);
      ...

另外: 这个重现的时 vue2.x vant 2.xde

@chenjiahan

LanjianNUll avatar Sep 12 '21 08:09 LanjianNUll

还是提个pr吧

LanjianNUll avatar Sep 24 '21 07:09 LanjianNUll