通过微信JsSdk获取本地图片但是不能执行this.setState更新数据
var localData="";
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
wx.getLocalImgData({
localId:localIds, // 图片的localID
success: function (res) {
localData = res.localData; // localData是图片的base64数据,可以用img标签显示
if(window.__wxjs_is_wkwebview){
message.success("IOS")
localData = localData.replace('jgp', 'jpeg');
}else {
message.success("Android")
localData = 'data:image/jpeg;base64,'+localData;
}
if(type == 'front'){
message.success("进入正面异步更新")
this.setState({
front:localData
}),()=>{
message.success("正面更新完成!")
}
}else {
message.success("进入背面异步更新")
this.setState({
back:localData
})
}
},
});
}
});
Log显示执行到message.success("进入正面异步更新")就没有了
已解决
由于wx.*内this已经改变直接this.setState是找不到此方法的,修改如下