我试图在调用回调时将在类的开头声明的变量(布尔值)设置为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。
答案 0 :(得分:20)
如果使用ES5语法,可以使用function(){}.bind(this)
将回调绑定到上下文,但使用Typescript,您可以使用ES6语法并使用箭头函数(parameters) => {function_body}
隐式绑定当前上下文。