swiper组件的current属性通过JS设置无效

发布于 6 年前作者 ayuan9151 次浏览最后编辑 6 年前来自 ask

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设置失败。

10 回复
cshi
cshi1 楼6 年前

我的已解决你上述所有问题

<swiper duration=“{{swiperDuration}}” style=“width:750rpx; height:{{dailyMainHeight}}” bindchange=“handleSwiper” current=“{{scrollToViewIndex}}”>

请注意 duration=“{{swiperDuration}}”


我的swiperDuration默认为0,意思就是说,首次切换swiper是没有动画过度的

注意我的代码

onReady的时候我又重置了swiper的动画 这样的话,只有第一次是无动画的swiper切换


希望能帮到你


zhangxiuying
zhangxiuying2 楼6 年前

谢谢

mcui
mcui3 楼6 年前

回12楼。我的swiper-item个数是不固定的,所以又有新问题。

ming86
ming864 楼6 年前

我的完美解决了,不需要二次调用,但是需要初始赋值。

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

gang34
gang345 楼6 年前

以上问题自测应该就能搞定了,很早之前就出现的问题了 亲

hliang
hliang6 楼6 年前

回复12楼。我的swiper-item个数是固定的。。。。。

yangfan
yangfan7 楼6 年前

谢谢反馈。

这个bug已经确认,具体表现是这样:如果同时更新current和swiper-item,那么current有可能会被错误更新。

临时规避的方法是先设置好swiper-item,再设置current值。

yan91
yan918 楼6 年前

回1楼。多谢建议,社区搜索功能下个版本就能见到了。

ming71
ming719 楼6 年前

谢谢你的回答。解决了,这也问题是这个版本一更新就出来的,原来是直接设是可以的。

maofang
maofang10 楼4 年前

我找到了问题所在,要二次设置才起作用。这样产生不好的效果就是,会从第一页,一直滚到要设置的显示的页面。