各位好!
哪位能帮助看一下下面的问题,或者,提供一下解决思路,谢谢!
相册页面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. <swiper current-item-id="{{current_item_id}}" bindchange="swiperItemChange"
2. 点击(tap)缩略图中的一个相片时: that.setData({
current_item_id: 'show_list_' + e.currentTarget.dataset.show.id,
})
解决了。
没有触发,没有触发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值,能清除掉的话,是比较正常的方法。