Redux では、リデューサーから常に新しい状態を返す必要があります。たとえば、次の状態があります。
let initialState = {
prop: 3,
internalReferenceProp: {a:3}
}
そして、を変更するレデューサーinternalReferenceProp
。state
このレデューサーは、オブジェクト参照のみ、または両方state
を変更するために実装できますinternalProperty
。
function(state=initialState, action) {
// changing only state reference
let newState = Object.assign({}, state);
newState.internalReferenceProp.a = 7;
return newState;
// changing both state and internalReferenceProp reference
return Object.assign({}, state, {internalReferenceProp: {a:7}})
}
最初のアプローチは正しくないと言われているので、私の質問は、内部参照も変更するという要件の背後にある理由は何ですか? state
変更されたかどうかを簡単に比較できるため、参照を変更する必要があることは理解していますstate
が、なぜ内部参照を変更するのですか?