繁体   English   中英

设置状态模式以访问状态中的对象属性(reactjs)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM