Не 100%, так как хороший старый this
контекст сбивает с толку!
поэтому я думаю, что вы хотите избавиться от bind()
и вместо этого использовать =>
в своих функциях.Использование жирных стрелок приведет к сбросу контекста this
, поэтому this.setState
должно быть правильным в контексте вашего компонента на основе классов.
Вот пример того, что я имею в виду
onAuthSuccess = () => {
this.setState({
email: "",
password: "",
error: "",
loading: false
});
};
onAuthFailed = () => {
this.setState({
error: "Authentication Failed",
loading: false
});
};
onButtonPress = () => {
const { email, password } = this.state;
this.setState({ error: "", loading: true });
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(() => this.onAuthSuccess())
.catch(() => {
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then(() => this.onAuthSuccess())
.catch(() => this.onAuthFailed());
});
};