【发布时间】:2017-09-27 06:11:45
【问题描述】:
<input
defaultValue={this.props.str.name}
ref={(input) => { this.state.name = input; }}
name="name"
type="text"
className="form-control"
onChange={this.handleInputChange}
/>
handleInputChange(event) {
this.setState({
[event.target.name]: event.target.value
});
}
if(this.state.name.value === "") {
this.msg.show('Required fields can not be empty', {
time: 2000,
type: 'info',
icon: <img src="img/avatars/info.png" role="presentation"/>
});
}
我正在尝试像这样设置默认值,并且也想访问它。我确实喜欢这个并使用this.state.name.value 访问了该值,但事情是它的工作,但显示警告为
不要直接改变状态,使用 setState() 反应/无直接突变状态。
【问题讨论】:
-
你读过错误吗?不要直接修改状态对象,除非在构造函数中,使用
this.setState({ name: input }); -
"但是如果用户更改字段的值,我会使用那个东西" handleInputChange(event) { this.setState({ [event.target.name]: event.target.value }); }