gpt4 book ai didi

javascript - undefined 不是函数 this.setState

转载 作者:行者123 更新时间:2023-12-04 01:19:44 25 4
gpt4 key购买 nike

我创建了一个简单的登录页面,一旦按下按钮,它就会执行此功能:

login = (email, password, navigate) => {
this.setState({ loginButtonPressed: true });
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(function(user) {
navigate('Profile');
})
.catch(function(error) {
this.setState({ loginButtonPressed: false });
Alert.alert(error.toString());
});
};

调用后,它会执行“this.setState({ loginButtonPressed: true })”,因为按钮会改变形状(它被标记为已按下)。但是我收到以下错误:Undefined is not a function this.setState

如何解决这个问题?感谢您的帮助。

最佳答案

问题在于:

.catch(function(error) {
this.setState({ loginButtonPressed: false });
Alert.alert(error.toString());
});

您创建一个匿名函数,其中 this 将引用此匿名函数(对象),而不是 React 对象。

我看到你可以使用箭头函数,所以像这样修复它:

.catch((error) => {
this.setState({ loginButtonPressed: false });
Alert.alert(error.toString());
});

使用箭头函数 this 将引用使用它的上下文。

关于javascript - undefined 不是函数 this.setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49821672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com