我尝试建立一个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)
有什么提示吗? :/ 谢谢!
答案 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))