Redux 要求总是从 reducer 返回新的状态。例如,我有以下状态:
let initialState = {
prop: 3,
internalReferenceProp: {a:3}
}
以及修改的reducer internalReferenceProp
。这个 reducer 可以被实现为仅更改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
更改,但为什么要更改内部参考?