我正在寻找一种设置状态深层属性的方法。
让我们说状态,它看起来像这样:
{
alpha: {
beta: 'hello'
}
}
使用lodash onChange
函数,Component有set
的方法。
onChange({key, value}) {
this.setState(set(Object.assign({}, this.state), data.key, data.value))
}
答案 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}});