Jea*_*ean 2 javascript firebase reactjs react-native firebase-authentication
我创建了一个简单的登录页面,一旦按下该按钮,就会执行以下功能:
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());
});
};
Run Code Online (Sandbox Code Playgroud)
一旦被调用,它就会执行"this.setState({loginButtonPressed:true})",因为按钮会改变形状(它被标记为按下).但是我得到以下错误:Undefined不是this.setState函数.
怎么解决这个问题?谢谢你的帮助.
问题在于:
.catch(function(error) {
this.setState({ loginButtonPressed: false });
Alert.alert(error.toString());
});
Run Code Online (Sandbox Code Playgroud)
您创建一个匿名函数,其中this
将引用此匿名函数(Object),而不是React对象.
我看到你可以使用箭头功能,所以修复如下:
.catch((error) => {
this.setState({ loginButtonPressed: false });
Alert.alert(error.toString());
});
Run Code Online (Sandbox Code Playgroud)
使用箭头功能this
将引用使用它的上下文.
归档时间: |
|
查看次数: |
1169 次 |
最近记录: |