swiper current="{{current}}" duration="500" style="width:480px; height:200px" catchchange="bindchangeTag" >
<block wx:for="{{imgUrls}}">
<swiper-item>
<image src="{{item.bgurl}}" catchtap="onMyclick"></image>
</swiper-item>
</block>
</swiper>
JS代码:
var dd=3;
var imgUrls=[
{bgurl:"../../image/itempic.jpeg"},
{bgurl:"../../image/testimg/test00.jpg"},
{bgurl:"../../image/itempic.jpeg"},
{bgurl:"../../image/testimg/test01.jpg"},
{bgurl:"../../image/testimg/test02.jpg"},
{bgurl:"../../image/itempic.jpeg"},
{bgurl:"../../image/testimg/test03.jpg"},
{bgurl:"../../image/itempic.jpeg" },
]
this.setData({
imgUrls:imgUrls,
current:dd
})
滚动视图,随便点进去,都显示第一张。就是说current:dd设置失败。
谢谢反馈。
这个bug已经确认,具体表现是这样:如果同时更新current和swiper-item,那么current有可能会被错误更新。
临时规避的方法是先设置好swiper-item,再设置current值。
回12楼。我的swiper-item个数是不固定的,所以又有新问题。
回复12楼。我的swiper-item个数是固定的。。。。。
我的完美解决了,不需要二次调用,但是需要初始赋值。
1.页面
<swiper current="{{scrollToViewIndex}}">
<block wx:for="{{dataList}}">
<swiper-item>
<template is="dailyTMPL" data="{{...item}}" />
</swiper-item>
</block>
</swiper>
2.JS
Page({
data: {
dataList: [{}, {}, {}, {}],
scrollToViewIndex: 0
},
onLoad: function(options) {
....
this.setData({
dataList: data,
scrollToViewIndex: options.index
});
}
});
这样就不需要两次设置值了,自从这个版本更新后,好多未设置初始值的地方都报错了
好算我的swiper-item个数是固定的(都是4个),若是动态还是得二次设置current
谢谢
谢谢你的回答。解决了,这也问题是这个版本一更新就出来的,原来是直接设是可以的。
以上问题自测应该就能搞定了,很早之前就出现的问题了 亲
我的已解决你上述所有问题
<swiper duration="{{swiperDuration}}" style="width:750rpx; height:{{dailyMainHeight}}" bindchange="handleSwiper" current="{{scrollToViewIndex}}">
请注意 duration="{{swiperDuration}}"
我的swiperDuration默认为0,意思就是说,首次切换swiper是没有动画过度的
注意我的代码
onReady的时候我又重置了swiper的动画 这样的话,只有第一次是无动画的swiper切换
希望能帮到你
我找到了问题所在,要二次设置才起作用。这样产生不好的效果就是,会从第一页,一直滚到要设置的显示的页面。
额 我的是解决了 亲,
我的逻辑是这样的 打开首页,点击条目调用组件
index.wxml
<navigator url="../daily/daily?index=1" class="index_nav">....</navigator>
daily.wxml里面设置
<swiper duration="{{swiperDuration}}" style="width:750rpx; height:{{dailyMainHeight}}" bindchange="handleSwiper" current="{{scrollToViewIndex}}">
....
</swiper>
daily.js里面设置
Page({
data: {
scrollToViewIndex: 0
},
onLoad:function(options){
var that = this;
wx.getStorage({
....
success:function(){
that.setData({
scrollToViewIndex: options.index
});
setTimeout(() => {
that.setData({
scrollToViewIndex: options.index
});
}, 100);
}
})
}
});