在反应原生中,我如何在承诺捕获块中使用"this"?
this.guestErrorAlert();
在
GuestApi
.guestLogin()
.then(function (response) {
GuestApi.onSuccess(response);
return response;
})
.then(() => this.openLanguageStartupScreen())
.catch(function (error) {
GuestApi.onError();
console.log(error);
this.guestErrorAlert();
});
问题在于范围,使用胖箭头解决问题。
将此代码块替换为:
.catch((error) => {
GuestApi.onError();
console.log(error);
this.guestErrorAlert();
});
如注释中所述,您可以使用箭头函数,也可以定义一个函数并绑定它。
例:
let catchCallback = function() {...};
catchCallback = catchCallback.bind(this);
GuestApi.guestLogin()
.then(...)
.catch(catchCallback);
希望这有帮助!