0
私の店では、fruitId
ごとに複数の州があり、それぞれfruitId
にはisDirty
州があります。次に、とRESET_ALL
の2つのアクションRESET_DIRTY
があります。次のコードは動作します。しかし、私はこのパターンをきれいにすることができるようにcombineReducers
でこれを行う方法があるかどうか疑問に思っていたと思いますか?reduxストアでcombineReducersを使用してネストされたisDirty状態をリセットしますか?
私の店は今、この権利のように見えると私は思っていたか
function fruits(state = {}, action) {
return {
isDirty: isDirty(state.isDirty, action)
}
}
function isDirty(state = false, action) {
switch (action.type) {
case ActionTypes.RESET_DIRTY:
return false;
default:
return state;
}
}
export default function fruitStore(state = {}, action) {
if (!action.type.startsWith('fruits')) {
return state;
}
const { fruitId } = action;
const { currentFruit } = fruitId ? {
[fruitId] : fruits(state[fruitId], action)
} : {};
let newState = Object.assign({}, state, currentFruit);
switch (action.type) {
case ActionTypes.RESET_DIRTY_ALL:
newState = Object.assign({}, newState);
Object.keys(newState).forEach((key) => {
newState[key].isDirty = false;
});
return newState;
default:
return newState;
}
}
興味深い..それをチェックアウト...しかし、私は今に実行している問題は、ちょうどにその可能RIFありますcombineReducerを使用して、isDirty状態resrtのようにネストされた更新を処理します。だから私は上記の単純なことができます – AirWick219