VUE里面自定义的方法没有调用

这个问题遇到过很多次了,这次又遇到一次浪费我时间想了一会儿,决定记下来,先举例

wx.scanQRCode({
  needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
  scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
  success: function (res) {
    var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    if (result.indexOf("qrStorageTicket") !== -1) {
      result = JSON.parse(result)
    }
    /**
     * 扫到存彩票的二维码
     */
    //重定向回主页的时候,判断扫到的码是否存在 qrStorageTicket,如果存在,进if
    if (result.cmd === "qrStorageTicket") {
      alert("进入了")
      this.storageLottery(result);
    }
}

这里我在H5里面用了微信的JSSDK调用扫一扫功能,扫描到二维码的时候,上面的this.storageLottery(result);方法死活都没执行,alert都执行了,其实这里是因为this指向的问题,改成这样就好了

_this = this;
wx.scanQRCode({
  needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
  scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
  success: function (res) {
    var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    if (result.indexOf("qrStorageTicket") !== -1) {
      result = JSON.parse(result)
    }
    /**
     * 扫到存彩票的二维码
     */
    //重定向回主页的时候,判断扫到的码是否存在 qrStorageTicket,如果存在,进if
    if (result.cmd === "qrStorageTicket") {
      alert("进入了")
      _this.storageLottery(result);
    }
}

因为这里的this指向的是wx.scanQRCode,要改成指向当前页面。
其他类似方法没有调用的问题我想大多也是因为this指向的问题吧

你可能感兴趣的:(前端VUE)