使用
react
开发项目过程中,遇到需要设置组件state
中某个对象的某个属性,尝试多种方式不得要领,查找资料最后找到解决方式
组件中的state
如下结构:
this.state = {
detail: {
key: value
}
}
需要通过this.setState()
方法设置,尝试过程如下(错误的方式)
this.setState({
detail: {
key: value2
}
})
最后在this.setState()
传入Object.assign()
方法实现该需求(正确的方式)
this.setState(
Object.assign({}, this.state.detail, { key: data })
)
参考资料:https://segmentfault.com/q/1010000009164862/a-1020000009164891
2019-06-01 更新内容
针对该场景也可以采用深拷贝原对象,修改对应属性后,重新赋值给state中的原对象。
该方法在以上方法无法解决问题的前提下应用。