[英]setstate pattern to access an object's property in state (reactjs)
如果你有一个对象在状态中,
state = {
item: {
name: ''
}
}
如何使用这种设计模式访问 item 对象的 name 属性?
changeMe = (e) => this.setState( {[e.target.name]: e.target.value});
我尝试将名称更改为 item.name 但它只是创建了一个以 item.name 为键的状态。
<Form.Control name="item.name" onChange={this.onChange} defaultValue={this.state.item.name}></Form.Control>
怎么样:
changeMe = (e) => this.setState( { item: {[e.target.name]: e.target.value} });
您不能以这种方式访问深度嵌套的属性,您可以手动拆分字符串然后递归索引到属性中,或者使用现成的东西,例如lodash.set
import set from 'lodash.set';
...
changeMe = e => {
const newState = set(this.state, e.target.name, e.target.value);
this.setState(newState);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.