所以,我有这个基础对象:
const obj = {
name: 'bill',
age: 44,
cid: 0
}
并且在我的应用程序的各个部分中,我在我的状态下“重置”到这个对象。问题是,如果我尝试重新分配 obj,cid 总是被覆盖 - 如果我显式重新分配,它是干净的.. ala.
// this is psuedo code, but this would break in that
// var2 now has some bleedover with other objects dirtying things up
this.setState({
key1: [_.merge([whatetever], {this.state.var1}],
key2: [this.obj]
})
注意:当我注销“this.obj”时,它发生了某种变异。
// this way is fine
this.setState({
key1: [_.merge([whatetever], {cid},{this.state.var1}],
key2: [{
name: 'bill',
age: 444,
cid: 0
}]
})
但是在 5 个左右的地方显式地重新分配整个对象是很蹩脚的..为什么我不能重新分配 obj 引用。我多年来从未遇到过这种情况......当然,这是一个重新分配问题,也许是 es6 反向分配的问题?
你有什么想法吗?
最佳答案
尝试以下操作:
key2: Object.assign({}, state['key2'], this.obj)
虽然使用 this.obj
很奇怪。难道不应该是 props
或 state
吗?
我仍然不太确定您想通过“重置”来做什么。
关于javascript - Reactjs:在 setState 中使用时 Obj 被重新分配,有些奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754548/