android - undefinend 不是函数 this.setState 反应原生
问题描述
我正在开发一个反应原生应用程序。当我尝试执行以下代码时出现错误。但是同一文件其他部分的 setStates 工作正常。
未定义不是一个函数(评估'this.setState({firebaseMessages:“错误密码”})
.catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === "auth/wrong-password") {
//alert("Wrong password.");
this.setState({ firebaseMessages: "Wrong password" });
this.setState({ isModalVisibleFirebase: true });
this.setState({ loading: false })
return;
} else {
alert(errorMessage);
return;
}
console.log(error);
}
解决方案
如果你使用 ES5 的函数定义方式,你的this
作用域将会改变,使用箭头语法来保持this
作用域。
所以现在你应该.catch((error) => {
做.catch(function (error){
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === "auth/wrong-password") {
//alert("Wrong password.");
this.setState({ firebaseMessages: "Wrong password" });
this.setState({ isModalVisibleFirebase: true });
this.setState({ loading: false })
return;
} else {
alert(errorMessage);
return;
}
console.log(error);
}
推荐阅读
- c++ - 以下代码的内部功能是什么?
- c# - 验证用户凭据并读取用户的关联组
- amazon-web-services - 如何使用 serverless yml 和 angular 8 登录 AWS Cloud Watch
- php - 如何在php中发送短信?
- azure - MSAL - 使用来自不同目录的两个不同的客户端 ID
- python - 如何扁平化来自 Surveymonkey API 的 JSON 响应
- angular - 在单个授权请求中访问多个资源
- glfw - 我可以获取有关 vga 的信息并监控连接状态吗?
- php - 如何使用搜索查询显示两个表中的数据?
- vue.js - 如何在 Vue.js 中使用 Vue-Lottie?