【发布时间】:2018-11-17 19:04:16
【问题描述】:
我有以下代码接收变量并显示在屏幕上:
<input type="number" value={this.state.cpf} onChange={this.handleChange} name="name" />
handleChange(event) {
this.setState({cpf: event.target.value});
}
handleSignIn(event) {
alert('A name was submitted: ' + this.state.cpf);
event.preventDefault();
}
我想去掉handleChange,改变onChange中的直接props,我试过了,还是不行:
onChange={this.setState({ cpf: target.value })}
如何使用 this.setState 更改 onChange 值?
【问题讨论】:
-
onChange 需要一个函数
-
onChange={event => this.setState({ cpf: event.target.value })}应该可以解决问题。 -
您的渲染方法应该始终保持纯净。在渲染方法 t 中设置状态是一种非常糟糕的做法,并且更有可能产生副作用
-
@lomse 我尽量不使用 onChange 方法,但是我不能输入表单,你知道会发生什么吗?我想在不调用函数的情况下更改道具的值,因为我将使用更新后的值在 API 中发帖。
-
您的表单输入是否有类似
<input value={this.state.inputValue}>这样的value属性?