无法读取未定义的属性“状态”
2019-01-14
523
我试图从按钮单击中的输入中获取值但是当我单击时出现错误:无法读取未定义的属性“状态”。
这是我的代码,在身份验证函数中this.state返回:无法读取未定义的属性“状态”。
constructor(props) {
super(props);
this.state = {
email: '',
pass: ''
}
}
handleChange (event) {
this.setState({
[event.target.name]: event.target.value
})
}
authentication() {
console.log(this.state);
}
render() {
return (
<Fragment>
<LoginStyles />
<main>
<section>
<h2 className="title">Login</h2>
<div className="form__login">
<label>Nome:</label>
<input type="text" name="email" onChange={event => this.handleChange(event)} />
<label>Senha:</label>
<input type="password" name="pass" onChange={event => this.handleChange(event)} />
<button className="btn-default" onClick={this.authentication}>Acessar</button>
</div>
</section>
</main>
</Fragment>
)
}
2个回答
您应该绑定您的身份验证函数以及 handleChange 函数。为此,您可以在构造函数中使用 bind 方法,也可以使用 ES6 箭头运算符,如下所示-
handleChange = (event) => {
this.setState({
[event.target.name]: event.target.value
})
}
authentication = () => {
console.log(this.state);
}
techie_questie
2019-01-14
正如有人已经提到的,您必须像他一样在构造函数或 onClick 中绑定方法
这是指向 React 中的 处理事件 的链接
twcardenas
2019-01-14