鍍金池/ 問(wèn)答/HTML5  HTML/ 微信JsSdk獲取本地圖片不執(zhí)行React的setState

微信JsSdk獲取本地圖片不執(zhí)行React的setState

通過(guò)微信JsSdk獲取本地圖片但是不能執(zhí)行this.setState更新數(shù)據(jù)

    var localData="";
    wx.chooseImage({
        count: 1, // 默認(rèn)9
        sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
        sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
        success: function (res) {
             var localIds = res.localIds[0]; // 返回選定照片的本地ID列表,localId可以作為img標(biāo)簽的src屬性顯示圖片
             wx.getLocalImgData({
                localId:localIds, // 圖片的localID
                success: function (res) {
                    localData = res.localData; // localData是圖片的base64數(shù)據(jù),可以用img標(biāo)簽顯示
                    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("進(jìn)入正面異步更新")
                            this.setState({
                                front:localData
                            }),()=>{
                                message.success("正面更新完成!")
                            }
                    }else {
                        message.success("進(jìn)入背面異步更新")
                        this.setState({
                            back:localData
                        })
                    }
                },
            });
        }
    });

Log顯示執(zhí)行到message.success("進(jìn)入正面異步更新")就沒(méi)有了

回答
編輯回答
青瓷

你的這個(gè)好使了嗎?你用到了js-sdk的圖像接口了嗎?上傳圖片返回?zé)o效id遇到了嗎?

2018年7月31日 21:45
編輯回答
幼梔

已解決
由于wx.*內(nèi)this已經(jīng)改變直接this.setState是找不到此方法的,修改如下

    var that=this;
    wx.chooseImage({
        count: 1, // 默認(rèn)9
        sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
        sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
        success: function (res) {
             var localIds = res.localIds[0]; // 返回選定照片的本地ID列表,localId可以作為img標(biāo)簽的src屬性顯示圖片
             wx.getLocalImgData({
                localId:localIds, // 圖片的localID
                success: function (res) {
                    var localData = res.localData; // localData是圖片的base64數(shù)據(jù),可以用img標(biāo)簽顯示
                    if(window.__wxjs_is_wkwebview){
                        localData = localData.replace('jgp', 'jpeg');
                    }else {
                        localData = 'data:image/jpeg;base64,'+localData;
                    }
                    if(type == 'front'){
                        that.setState({
                                front:localData
                            })
                    }else {
                        that.setState({
                            back:localData
                        })
                    }
                },
            });
        }
    });
2017年2月18日 21:48