[微信小程序]chooseImage自动恢复修改过的变量,并且打印错误 [换个简单的问我吧!]+ 查看更多
[微信小程序]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本身有网络图片的原始数据,就会出现该问题。
-
, 如果你什么都不说,我也不知道怎么回答你呀对于console的问题,你可以百度下 console.log值不对 你页面的onShow里对imgArr进行的修改吗?chooseImage会触发 onHide onShow , 此刻 我只愿意和你聊天
-
chooseImage会触发 onHide onShow,那我就知道为什么了,为什么会有这种操作。。。, 希望只触发几次吧,然后绝版
-
从webview环境进入到了原生环境,对小程序来说,就是hide了, 沿途的风景,是心灵最美的慰籍。
-
原来如此,谢谢大佬, 千万别告诉别人我做了好事,不然会影响我形象的。
, 如果你什么都不说,我也不知道怎么回答你呀 -