React-Native Firebase身份验证错误消息一直停留到第二次尝试

时间:2018-07-08 23:46:57

标签: firebase react-native firebase-authentication

我尝试建立一个signUp方法,但是在错误处理方面存在一些问题。如果我写了一封错误的电子邮件,那么它将创建一个好邮件,但是errorMessage仍处于先前状态,但是用户创建已运行。

firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.pwd)
.then(() => this.props.navigation.navigate('Loading', this.setState({errorMessage: ''})))
.catch(error => this.setState({ errorMessage: error.message, alert(this.state.errorMessage)}));

例如:

Write: asd@gmail ->
Click button: alert nothing ->
Write: asd@gmail.com ->
Click button: alert bad email but navigate to Loading Screen (successful account creating)

有什么提示吗? :/ 谢谢!

2 个答案:

答案 0 :(得分:1)

您的setState语法不正确,您需要添加一个回调,并且alert函数应该在setState的回调中。应该如下:

this.setState({
   errorMessage: error.message
},() => {
   alert(this.state.errorMessage);
});

答案 1 :(得分:0)

您错了setState,应该是 this.setState({ params }, this.doSomething)

this.setState({ errorMessage: error.message, }, alert(this.state.errorMessage))