我想验证react native
中的登录表单。但是我在onChangetext
中使用了另一个本机的 Firebase 日志记录功能。
这是我在登录按钮中按下的onPress
函数。
async onLoginPress() {
this.setState({ errorMessage: null, loading: true });
const { email, password } = this.state;
console.log(email);
console.log(password);
firebase
.auth()
.signInWithEmailAndPassword(this.state.email, this.state.password)
.then(() => {
this.setState({ loading: false });
// this.props.navigation.navigate("Friendlist");
})
.catch(() => {
//var errorCode = error.code;
//var errorMessage = error.message;
this.setState({
error: 'AUTHENTICATION FAILED',
loading: false
});
});
await AsyncStorage.setItem("email", email);
await AsyncStorage.setItem("password", password);
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.setState({
loading: false
});
}
});
}
这是我在onChangetext
中的TextInput
定义
onChangeText={email => this.setState({ email })}
我想用这些功能添加验证功能。我怎么做到的?
答案 0 :(得分:0)
您可以在
的onChangeText回调中添加多个功能。onChangeText={async email => {
await method1()
await method2()
...
}}
但是我建议您使用回调,因为您使用的是setState
。这样可以确保setState
在调用其回调之前被更新
onChangeText={email => this.setState({ email }, () => this.validate(email))}