我试图从按钮单击中的输入中获取值,但是当我单击时出现错误:无法读取未定义的属性'state'
这是我的代码,在身份验证功能this.state中返回:无法读取未定义的属性“ 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>
)
}
答案 0 :(得分:3)
您应该绑定身份验证功能和handleChange函数。为此,您可以在构造函数中使用bind方法,也可以如下使用ES6箭头运算符-
handleChange = (event) => {
this.setState({
[event.target.name]: event.target.value
})
}
authentication = () => {
console.log(this.state);
}
答案 1 :(得分:0)
正如已经提到的那样,您必须像他那样将方法绑定到构造函数或onClick中
这是React中Handling Events的链接