2016-03-02 72 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 ..謝謝爲了清晰起見。有時候我只需要一套新的眼睛! :-) –