收藏
回答

如何解决wx.uploadFile执行回调函数完毕后导致整个页面刷新?

API:wx.uploadFile,

基础库版本:2.19.4

版本:开发版,微信开发者工具预览

组件内调用

changeImage: async function (e) {
    if (this.data.editable) {
        chooseImageToUpload(e.currentTarget.dataset.name).then(res => {
            console.log(res);
            this.setData({
                imageUrl: res.url
            });
            this.triggerEvent('changeImage', res)
        })
        return false;
    }
}


chooseImageToUpload封装:

export function chooseImageToUpload(label) {
    return new Promise((resolve, reject) => {
        wx.chooseImage({
            count: 1,
            success: tempFile => {
                wx.uploadFile({
                    url: 'https://jiafeimaoapp.com/app/file/upload',
                    filePath: tempFile.tempFilePaths[0],
                    name: 'normalServiceImage',
                    success: res => {
                        let result = JSON.parse(res.data);
                        let url = result.data;
                        let msg = {
                            url: url,
                            label: label
                        };
                        resolve(msg);
                    },
                    fail: res => {
                        console.log(res);
                        reject(res);
                    }
                })
            }
        });
        return false;
    })
}


页面内调用绑定函数

//点击认证图片,修改认证用图片
changeVerifyImage(e) {
    console.log(e);
},


麻烦大佬们帮忙看一下,这个问题会导致页面本身已经修改的Data里面的信息丢失,触发页面刷新之后偶尔还可以保留之前修改过的值

回答关注问题邀请回答
收藏

1 个回答

  • 牲产队-朝酒晚舞
    牲产队-朝酒晚舞
    2022-09-19

    猜测 页面接口请求刷新是放在onShow里,而wx.uploadFile里肯定用到wx.chooseImage.调用这个api小程序会先触发onHide。选择完图片回来就会触发onShow。


    猜测猜测哈。不知道对不对

    2022-09-19
    有用
    回复 2
    • nEk0Nya
      nEk0Nya
      2022-09-19
      并不是的,这个被封装到组件里的,组件只有if控制显示与隐藏,changeImage这个方法是组件内的bindtap,调用的是封装起来的wx.chooseImage,并且已经做了阻止冒泡,这个问题是突然出现的,目前仍在排查
      2022-09-19
      回复
    • 牲产队-朝酒晚舞
      牲产队-朝酒晚舞
      2022-09-19回复nEk0Nya
      那布吉岛原因咯
      2022-09-19
      回复
登录 后发表内容