vue引用vant中swipe组件bug。

项目中引入了vant,在使用swipe组件时,参数loop设置为了false。根据文档中loop参数功能是是否开启循环播放,默认为true。

项目中也设置了loop=false;
<van-swipe :loop="false" @change="changeSwipe" ref="swipe"></van-swipe>
但是还是会存在切换到最后一个容器还可以接着切换swipe的情况,请问有没有遇到过这种bug?该如何解决

阅读 8.7k
2 个回答

可以尝试以下方案,我在项目里这么做的,目前可行,供参考下:
第一步:记录初始化和每次 change 时的当前 siwpeIndex。
第二步:在绑定的 change 事件里,通过 ref 可以获取到 Swipe 实例,然后获取实例里的 deltaX属性值(值为正值,表示左滑;值为负值,表示右滑)。
第三步:如果当前 siwpeIndex为最后一个内容,且deltaX值为负时,调用siwpeTo() 方法重定向到最后一个轮播内容。
具体来说,是在 siwpe 绑定的change事件里如下

if(this.swipeIndex==(this.siwpeData.length-1)&&this.$refs.mySwipe.deltaX<0){
                this.$refs.mySwipe.swipeTo(this.swipeIndex,{immediate:false});
            }

建议使用swiper框架,vant中的swipe组件确实有bug

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