问题描述 :
previewImage current (当前显示图片的链接,不填则默认为 urls 的第一张)
默认了current 后还是显示的
urls 列表中的第一张图片
反馈图如下:
<
view
class
=
"img_item"
wx:for
=
"{{picList}}"
wx:for-item
=
"item"
>
<
image
src
=
"{{item.url}}"
bindtap
=
"viewPic"
data-url
=
"{{item.url}}"
></
image
>
</
view
>
viewPic: function (e) { var _this = this ; var nowpic = e.target.dataset.url; var picList = _this.data.picList; var urls = []; for ( var i = 0; i < picList.length; i++) { //console.log(picList[i].url); urls.push( picList[i].url); } console.log(nowpic); wx.previewImage({ current: nowpic, // 当前显示图片的http链接 urls: urls, // 需要预览的图片http链接列表 }) }, |
current 应该传入对应下标的图片链接,而不是下标本身;如下:
wx.previewImage({
current: that.userPhotos[photoIndex],
urls: that.userPhotos
})
官方文档没有bug,事件绑定要绑定在image组件上,而不是绑定在view组件上
可以成功实现预览而且从你点击的图开始的。
首先,wxml文件如下。注意bindtap本人用了后端指定函数名而非硬编码。
<view class="form-box" wx:for="{{temPath}}" wx:key="{{index}}"> <image data-index="{{index}}" src="{{item}}" bindtap="{{funcN}}"></image> </view>
js文件如下:
Page({ data:{ address:{ name:'', phone:'', detail:'', picUrl1:'', picUrl2:'', upImg:false, location:'所在位置', blog:"", show:true, month:0, date:0 }, temPath:undefined, funcN:'previewImg', }, ……………… previewImg(event){ console.log(event.currentTarget.dataset.index) wx.previewImage({ urls: this.data.temPath, //'current', current: this.data.temPath[event.currentTarget.dataset.index], success: (res) => {}, // fail: (res) => {}, // complete: (res) => {}, }) } })
就可以了,注意bintap的使用位置不是循环的外view,而是用在item上。而且,要设置current的值为数组的当前索引的URL。
我也有这个问题,数组只放一张当前图片可以暂时解决,期待官方回复
urls 参数里需要填写所有的图片地址,包括 A(current),是否没有将 A 放入 urls 中
我也遇到了这个问题 current无效。 怎么都是显示第一张。日志打出来又对着呢。
官方人呢? 怎么没人回应一下