React-Native Firebase 身份验证错误消息卡住,直到第二次尝试



我尝试制作一个注册方法,但我在错误处理方面遇到了一些问题。如果我写了一封糟糕的电子邮件,那么它会创建一个好的电子邮件,但错误消息仍处于以前的状态,但用户创建正在运行。

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)

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

你的 setState 语法不正确,你需要添加一个回调,警报函数应该在 setState 的回调中。它应该如下:

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

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

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

最新更新