class LoginForm extends Component {
state = { email: '', password: '', alert: 'Please Enter Your Email And Password' }
onButtonPress() {
const { email, password } = this.state;
this.setState({ alert: 'Please Try Again' });
firebase.auth().signInWithEmailAndPassword(email, password)
.catch(() => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.catch(() => {
this.setState({ alert: 'Login/Registeration Failed.' });
});
});
}
render() {
return (
<Card>
<CardSection>
<Button
text={'Login'}
onPress={this.onButtonPress.bind(this)}
正如您在最后一行代码中看到的那样,只要按下按钮,我的按钮就会调用onButtonPress函数。我还使用.bind(this)将方法绑定到LoginForm组件。因为据我所知,ES6类不会自动将方法绑定到自身。但是这个&#39;是什么呢?在方法onButtonPress()中引用我是否写过this.onButtonPress 而不是this.onButtonPress.bind(this)和为什么?
答案 0 :(得分:0)
传递给bind
的第一个参数将定义绑定函数中this
的值。
在你的情况下,你通过&#34;这&#34; (而不是&#34; foo&#34;或&#34; bar&#34;)因为您希望this
中的onButtonPress
成为您this
的{{1}} },这是render
类的实例。
来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind