微信小程序—success回调函数为什么使用this.setData报错

在success函数中执行this.setData报错

是因为success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接使用this.setData()的,如果我们要使用的话,可以在闭包之外先把this赋值给另一个变量。

bindViewTap: function() {
    let self = this
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        // tempFilePath可以作为img标签的src属性显示图片
        // 临时路径,每次获取都不一样
        const tempFilePaths = res.tempFilePaths
        self.setData({userPic: tempFilePaths[0]})
         //  success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接使用this.setData()的,如果我们要使用的话,可以在闭包之外先把this赋值给另一个变量。
      }
    })
  },

参考:参考链接

更多推荐

微信小程序—success回调函数使用this.setData报错的解决方法