小程序开发swiper不显示元素

问题描述:
swiper中嵌套多个swiper-item,数量是动态循环生成的。

目前存在的问题是:在页面首次加载时元素正常显示,当切换页面进行操作时,会改变轮播数据,当再次返回页面时,轮播图的元素不显示,但是审查元素是存在的。

存在原因:

  1. 当改变轮播图当前指针,即current属性值时,若该属性没有绑定任何数据,框架会自动绑定当前操作的值
  2. 页面发生切换时,current的值会被存储,也就是记住当前轮播的index。再次返回会重新赋上当前存储的值
  3. 也就是说假设滑动到第三屏时,current=2,切换页面改变数据,如果数据只有两条,那么再次返回页面,swiper会查找第三屏的元素,没有找到就会导致元素为空,但是其他屏的数据是存在的,所以页面会显示位置,但是没有元素。
  4. 这种情况应该是在轮播图不是自动轮播的情况下出现的。

解决办法:

  1. 为当前轮播图绑定current属性
  2. 页面切换返回时,为current重新赋值,current=0;

    <swiper current="{{current}}"></swiper>
    
    onShow: function(){
        this.setData({
        current:0
        })
    }
    

miomiomio
147 声望5 粉丝

人生昧履,砥砺而行