swiper闪屏,闪的很快,不是每次都能出现!时好时坏,最近才发现的问题,这是什么原因!
<scroll-view class='main-banner'>
<swiper style="height: 100%;" autoplay='true' current="{{swiperCurrent}}" circular="true" bindchange="swiperChange">
<block wx:for="{{bannerUrl}}" wx:key="{{this}}">
<swiper-item>
<image src="{{item.bannerImageUrl}}" mode="scaleToFill" class='img-res'></image>
</swiper-item>
</block>
</swiper>
</scroll-view>
这段逻辑会做两件事:
将this.data.swiperCurrent改为e.detail.current
通知视图更新swiper的current值
主要是第1点:你要看看你的代码中是不是要读this.data.swiperCurrent,要不然会有影响。
如果是需要呢
swiperChange的那段是不必要的。
你好,是不是在change的事件处理函数中用setData更新了current?
https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
求教怎么解决了,setData是需要的啊,设置图片下方轮播圆点的样式更换。
如果只是要更改其他数据,setData 设置的时候不要连同 current 一起设置。
但是如果需求有需要重置轮播图呢
https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
这里我既用到了自动轮播也用到了手动触摸切换轮播图
@LastLeaf 好的,谢谢你的悉心指导~
@LastLeaf 哦,那我把这段删了,就可以了吧
swiperChange: function (e) {
var that = this
that.setData({
swiperCurrent: e.detail.current
})
}
@LastLeaf 恩,又在onshow里重置了swiperCurrent
swiperChange: function (e) {
var that = this
that.setData({
swiperCurrent: e.detail.current
})
}
onShow: function () {
var that = this
that.setData({
swiperCurrent: '0'
})
}
哪位大神知道这是什么情况,帮忙指导一下...