如何在Typescript中的回调函数中访问“this”?

时间:2016-11-01 02:53:57

标签: javascript typescript braintree

我试图在调用回调时将在类的开头声明的变量(布尔值)设置为true,但是我一直在使用TypeScript erorr。

这是错误:

TypeError: Cannot set property 'nonReceived' of undefined

这是我的代码:

  finalizeToken(){
  braintree.setup(JSON.parse(this.finalToken), 'dropin', {
     container: 'dropin-container',
     defaultFirst: true,
      form: 'checkout-form',
      onPaymentMethodReceived: function (obj) {
        this.nonReceived = true;
      localStorage.setItem('nonce', obj.nonce);
    }
  });  
}

brintree-setup连接到Braintree Payments,等待用户付款信息。提交表单后,我需要将变量“this.nonReceived”设置为true。

1 个答案:

答案 0 :(得分:20)

如果使用ES5语法,可以使用function(){}.bind(this)将回调绑定到上下文,但使用Typescript,您可以使用ES6语法并使用箭头函数(parameters) => {function_body}隐式绑定当前上下文。