我有以下初始状态,它由平面属性和一个深层嵌套属性组成searchStatus
:
var searchStatus = Immutable.fromJS({
requesting: {
component: {tenants: false, platforms: false},
tenant: false,
hdf: false,
cluster: false
}
});
const initialState = {
selectedItem: null,
searchQuery: '',
searchStatus: searchStatus
};
我有一个适用于这种状态的减速器:
function reducer(state = initialState, action) {
switch (action.type) {
case GET_TENANT_TEMPLATES_LISTING_REQUEST:
var status = state.searchStatus.updateIn(['requesting', 'component', 'tenants'], function () {
return true;
});
return assign({}, state, {
searchStatus: status
});
是否可以仅返回searchStatus
部分状态的新副本,然后将其合并到状态中,还是应该始终返回整个状态副本?
更新:
case GET_TENANT_TEMPLATES_LISTING_REQUEST:
var copy = assign({}, state);
copy.searchStatus.requesting.component.tenants = true;
return copy;