我需要從兩個或多個減速器訪問用戶可編輯狀態。有沒有辦法訪問由另一個減速器控制的狀態,而不通過動作的有效載荷將它傳遞給減速器?我想避免讓每個操作都將用戶設置發送給reducer。如何在兩個或多個減速器之間共享只讀狀態
國家
{
userSettings: {
someSetting: 5
},
reducer1State: {
someValue: 10 // computed with userSettings.someSetting
},
reducer2State: {
someOtherValue: 20 // computed with userSettings.someSetting
}
}
從reducer1我想使用類似以下的userSettings.someSetting
獲得:
function update(state={}, action) {
if (action.type === constants.REDUCER_1.CALCULATE) {
return _.assign({}, state, {
someValue: 2 * GETSTATE().userSettings.someSetting
});
}
...
我不想有從發送userSettings這樣的動作:
export function calculate(userSettings) {
return {
type: constants.REDUCER_1.CALCULATE,
userSettings: userSettings
};
}
你可以使更多的狀態可見的減速器之一,而不是隻傳遞一個狀態的子集? – danielepolencic
基本上所有reducer都需要userSettings,所以我正在尋找一種方法將其默認傳遞給所有reducer。 –