2

結合された一連のレデューサーを使用してReduxプロジェクトに取り組んでいます

const rootReducer = combineReducers({
    reducer1,
    reducer2,
    ...
});

レデューサーはそれぞれストアのブランチを更新します

sampleStore = {
    reducer1: {a1: 7, b1: 5, c1: 6, ...},
    reducer2: {a2: 3, b2: 2, c2: 9, ...},
    reducer3: {a3: 1, b3: 4, c3: 2, ...},
    ...
}

現在、プロジェクト全体を再構築することなく、ストアの両方のブランチへのアクセスを必要とするロジックを追加しようとしています。たとえば、次の機能を備えたレデューサーが必要ですset c3 = f(a1, a2)

現在、再選択を使用しようとしていますが、迷子になっています。reducer1/selector.js で私が持っている

export const derivedVariableSelector = createSelector(
    a1Selector,
    a2Selector,
    (a1, a2) => a1 + a2
); 

そして、レデューサーを作成しようとしています

function setC3(state) {
    return Object.assign({}, state, {
        c3: state.c3 + derivedVariableSelector(state)
    });
}

ただし、setC3 が呼び出されると、derivedVariableSelector はそのジョブを実行するのに十分なストアを受け取ることはありません。a1 を含むブランチまたは a2 を含むブランチのいずれかを受け取りますが、両方を提供する方法はわかりません。これは可能ですか?

4

1 に答える 1