收藏
回答

swiper item 不能显示

各位好!

哪位能帮助看一下下面的问题,或者,提供一下解决思路,谢谢!


相册页面swiper中,包含如下的swiper item :


1. 【相片集列表】(item-id = "topic_list")

2. 【相片集总览】(item-id = "topic_overall"),选择【相片集列表】后显示该item,用于显示该相片集的说明和相片集中的相片缩略图

3. 【相片集中每个相片的显示】(item-id = "photo_xxx"),通过 wx:for="{{photos}}"生成


访问步骤:


1.  首页显示【相片集列表】,

2.  选择【相片集列表】中的某个相片集,进入【相片集总览】

3.  选择【相片集总览】中的某个相片缩略图,进入【相片集中每个相片的显示】,之后,可以滑动显示相邻的相片


出现的问题是:


1.  按上述访问步骤可以正常显示一个相片集中的相片

2.  返回【相片集列表】,并选择另外一个相片集中,也正常可以访问

3.  但再次返回【相片集列表】,并再次访问首次访问的那个相片集时,就会出现问题:

    1)点击(tap)【相片集总览】中的相片,出现空白页,并且没触发swiper的bindchange函数

    2)但用滑动方式,却可以正常访问相片

4.  只要是访问过的相片集,再次重新访问时,就会出现这个问题,而所有首次访问的相片集时,没有这个问题

5.  滑动方式显示相片时,查看bindchange中的e.detail,其中的currentItemId的值也是正常的swiper item id


回答关注问题邀请回答
收藏

1 个回答

  • 李炳刚
    李炳刚
    2019-07-28

    补充:

    1.   <swiper current-item-id="{{current_item_id}}" bindchange="swiperItemChange"

    2. 点击(tap)缩略图中的一个相片时:  that.setData({

    current_item_id: 'show_list_' + e.currentTarget.dataset.show.id,

    })


    2019-07-28
    有用
    回复 1
    • 李炳刚
      李炳刚
      2019-07-28

      解决了。

      没有触发,没有触发bindchange,可能原因是:

      之前的

      that.setData({

      current_item_id: 'show_list_'

      后,内部保存了current_item_id的值,没有清除掉,因此,再次重复访问之前的相片集时,可能就认为current_item_id没有变化。

      解决方法:

      设置了一个变量,每次进入一个相片集时,数值增1,然后,附加在自动生成的current_item_id值的后面,使得current_item_id与之前的不同,从而触发了bindchange,访问正常了。

      但还是不知道如何清除掉之前的current_item_id值,能清除掉的话,是比较正常的方法。

      2019-07-28
      回复
登录 后发表内容