2016-03-02 73 views
0

所以当obj是被重新分配,我有这样的基础对象:Reactjs:使用的setState,一些奇怪的

const obj = { 
    name: 'bill', 
    age: 44, 
    cid: 0 
} 

,并在我的应用程序的各个部分,我“复位”这个OBJ我的状态。问题是,如果我尝试重新分配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反向分配的问题?

反正你的想法?

回答

1

尝试以下操作:

key2: Object.assign({}, state['key2'], this.obj) 

虽然很奇怪,使用this.obj。这不应该是propsstate

我仍然不太清楚“重置”时你正在尝试做什么。

+0

谢谢...我实际上正在做这样的事情,问题是我脑部放屁,没有这个初始{},来创建“新对象”...因此我重写了obj ..谢谢为了清晰起见。有时候我只需要一套新的眼睛! :-) –