收藏
回答

compressImage里setData无效

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.compressImage 客户端 7.0 2.3.2
wx.compressImage({
          src: res.tempImagePath, // 原图片路径
          quality: 50, // 压缩质量,
          complete: compRes => {
            console.log(compRes.tempFilePath)
            this.setData({
              'form.compImg': compRes.tempFilePath
            })
          }
        })

console.log(compRes.tempFilePath)能打印出来正确的临时路径,但是往form.compImg里赋值就是一直时undefined??


最后一次编辑于  03-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 雪菜
    雪菜
    03-13

    我是拍照后,对图片进行压缩再上传的


    onTakePhoto() {
        const ctx = wx.createCameraContext();
        ctx.takePhoto({
          quality: 'high',
          success: (res) => {
            wx.compressImage({
              src: res.tempImagePath, // 原图片路径
              quality: 50, // 压缩质量,
              complete: compRes => {
                console.log(compRes.tempFilePath)
                this.setData({
                  'form.compImg': compRes.tempFilePath
                })
              }
            })
            this.setData({
              src: res.tempImagePath,
              'form.img': res.tempImagePath
            })
            console.log('compImg:', this.data.form.compImg)
            console.log('orignImg:', this.data.form.img)
          }
        })
      }



    03-13
    赞同
    回复 1
    • 昕语查
      昕语查
      03-13

      是不是里面不能直接使用this

      在最外面用变量试试呢?

      03-13
      回复
  • 周立人
    周立人
    03-13

    that=this

    //......



    that.setData({

    //.....

    03-13
    赞同
    回复
  • 肖宇
    肖宇
    03-21
    onTakePhoto() {
        var that = this;
        const ctx = wx.createCameraContext();
        ctx.takePhoto({
          quality: 'high',
          success: (res) => {
            wx.compressImage({
              src: res.tempImagePath, // 原图片路径
              quality: 50, // 压缩质量,
              complete: compRes => {
                console.log(compRes.tempFilePath)
                that.setData({
                  'form.compImg': compRes.tempFilePath
                })
              }
            })
            that.setData({
              src: res.tempImagePath,
              'form.img': res.tempImagePath
            })
            console.log('compImg:', that.data.form.compImg)
            console.log('orignImg:', that.data.form.img)
          }
        })
      }

    异步回调里面 setData 不能用this,在回调外把this赋给一个变量

    03-21
    赞同
    回复