uniapp中swiper-limited-load组件的使用

一、问题

在uniapp中使用swiper-limited-load组件,会遇到一个问题,就是滑到第一项或最后一项时,重新设置current值不生效的问题


原因分析:
1)@change中重新赋值current要在this.$nextTick中调用赋值函数
2)@change绑定的函数中要再次重新为current变量赋值


二、代码

<swiper 
	:style="{height:scrollH+'px'}"
	:current="swiperCurrent"
	:duration="duration"
	circular
	@change="swiperChange"
	class="swiper">
	<swiper-item v-for="(item,index) in swiperList" :key="index">
		...
	</swiper-item>
</swiper>
//  ...省略的代码与原组件写法一致,在此只列出需要给current赋值的部分
swiperChange: function (e) {
	// 重点代码-1
	this.swiperCurrent = e.detail.current               // ( * )
	...
	if (current - lastIndex == 1 || isLoopPositive) {
		// 如果是滑到了左边界或者下一个还未有值,弹回去
		if (currentItem == null) {
			info.current = NO_NEXT_PAGE
			// 重点代码-2,要有nextTick
			this.$nextTick(()=>{                        // ( * )
				this.swiperCurrent = lastIndex          // ( * )
			})	
			...
		}
		...
	}
},

参考文章:https://www.jianshu.com/p/0b73321e024e
参考文章:https://blog.csdn.net/qq_29184685/article/details/120161758

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值