最近在做小程序中的图片上传组件时发现几个问题(基本模仿uploader,但我看不懂uploader的文档然后没用😂)
想实现这种效果:
点击第三幅图片添加图片并在前面显示
我想用循环渲染解决:
//index.js data: { imagePathList:[] }, |
然后用了2种方式:
1.第一次脑残了,在index.js开头定义了 var image=new Array();
然后给第三张图bindtap:“addImage”
addImage: function (e){ var that= this ; wx.chooseImage({ count: 2, sizeType:[ 'compressed' ], success: function (res) {) that.setData({ imagePathList: res.tempFilePaths }) } }) }, |
这种情况下如果同时选择2张图片会出现
并报错
但tempFilePaths[]和image[]中都有2个相同的文件路径,然后再继续点击加号图片依然可以添加图片且
若只选择一张图片,图片正常显示且tempFilePaths[].length=1; image[].length=3.(新增加的为tempFilePaths[]中的那唯一一个路径值),不报错
若再选择2张图片,图片再度不能显示且tempFilePaths[].length=2; image[].length=3.(新增加的为tempFilePaths[]中的第一个路径值),报错同上图
且之后每次操作重复以上现象
2.
后来想想不需要image[],直接保留一个
that.setData({ imagePathList: res.tempFilePaths }) |
便可以让二者同步且正常实现功能
所以有些好奇第一种情况的错误原因