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