多个swiper,list重设swiper会异常
发布于 6 年前 作者 shiguiying 12965 次浏览 来自 问答
  • 当前 Bug 的表现

有一个数据列表,大概格式是这样

let list=[

{‘img’:[‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’]},

{‘img’:[‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’]},

{‘img’:[‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’]},

{‘img’:[‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’,‘1.jpg’]},

]

大概是这样展现

<block wx:for="{{list}}" wx:for-item=“item”>

    <swiper>

        <block wx:for="{{item[‘img’]}}" wx:for-item=“img”>

            <swiper-item>

                <image src=“img”></image>

            </swiper-item>

        </block>

    </swiper>

</block>

  • 复现办法

当我修改list的数据,然后重设list时,swiper的样式就不正常了,查看样式,发现swiper-item上的transform消失了,图片都竖排了

即使我完全不改list的数据,就简单的重设,大概如下面代码,也会异常

let tmpList = this.data.list;

this.setData({

    list:tmpList,

})

其实我想做的是下拉刷新,发现重设list 这个swiper组件就异常了

求问,怎么解决?(以上代码可能有错,只是大概列出是这么个意思)

2 回复

已找到原因,原因是swiper的高度绑定了list里的保存的高度数据,重设list时就出异常了。

解决办法只能是用另外的数组保存swiper宽高了

回到顶部