chooseImage自动恢复修改过的变量,并且打印错误
以下是在开发者工具打印的结果,imgArr的原始数据是:
deleteImage: function(e) { //删除图片 var target = e.currentTarget.dataset; var index = target.index; this.data.imgArr.splice(index, 1); console.log('this.data.imgArr2222', this.data.imgArr) this.setData({ imgArr: this.data.imgArr }) console.log('this.data.imgArr33333', this.data.imgArr) }, chooseImage: function() { //选择图片 var _self = this; console.log(' _self.data.imgArr.length44444', _self.data.imgArr.length) let count = 4 - _self.data.imgArr.length; if (count <= 0) { util.showModal('最多只能上传三张照片!') return; } console.log(' _self.data.imgArr555555', _self.data.imgArr) wx.chooseImage({ count: count, // 默认9 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有['original', 'compressed'] sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function(res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 console.log('chooseImage7777777', _self.data.imgArr) for (let i = 0; i < res.tempFilePaths.length; i++) { console.log('xxxxxxxx') _self.data.imgArr.push(res.tempFilePaths[i]) } console.log('chooseImage8888888', _self.data.imgArr) _self.setData({ imgArr: _self.data.imgArr }) console.log('chooseImage', _self.data.imgArr) } }) }, |
先执行了删除中间那张图片,然后在添加。
chooseImage777777外边写的是(3)但开打来看却有四个,并且是在原始数据上push进了我新选择的图片,之后打印的数据都跟777777的一样,除了括号内的有问题。
执行了wx.chooseImage之后的问题:
1.恢复了我之前在deleteImage中删除的第二条数据,并push了一条新的
2.打印顺序不对,先打印的777777再执行push,但是打印出来的777777里面却是已经push的数据(虽然这个数据本身就是错的)
尝试:imgArr如果没有原始数据,chooseImage正常执行,但是imgArr本身有网络图片的原始数据,就会出现该问题。
