设置一个国家的深层财产

时间:2017-06-13 04:54:55

标签: reactjs lodash

我正在寻找一种设置状态深层属性的方法。

让我们说状态,它看起来像这样:

{
  alpha: {
    beta: 'hello'
  }
}

使用lodash onChange函数,Component有set的方法。

onChange({key, value}) {
  this.setState(set(Object.assign({}, this.state), data.key, data.value))
}

2 个答案:

答案 0 :(得分:1)

对于深度组件,请设置这样的状态,

this.setState({
  alpa:{
      ...this.state.alpha,    //this will copy all other object values
      beta: 'hello'           //this will change only values that you need
  }
})

答案 1 :(得分:0)

我不太清楚你为什么要使用lodash。如果您只是使用this.setState(...)设置状态,则不必关心合并旧状态和新状态。

为了深入了解你,请执行以下操作:

this.setState({alpha: {beta: "your new Value"}});

或使用动态键值对:

this.setState({alpha: {[key]: value}});