これは2つの州/レデューサーの間でデータを共有するための妥当な解決策ですか?2つのReduced/Regus間でデータを共有する
//combineReducers
function coreReducer(state = {}, action){
let filtersState = filters(state.filters, action);
let eventsState = events(state.events, action, { filters: filtersState});
return { events: eventsState, filters : filtersState};
}
export const rootReducer = combineReducers(
{
core : coreReducer,
users
}
);
もしそうなら、どのように1は同じ送出されたイベントへの答えと第2還元機能の両方が、最初の1の新しい状態に依存する場合、減速機能が実行される順序を保証することができますか?
SET_FILTER
イベントをディスパッチして、フィルタストアのactiveFiltersコレクションに追加し、その後、イベントストア内の項目の表示をactiveFilters値に対して変更するとします。得られたデータをコンピューティング - -
//ActiveFilters reducer
function filtersActions(state = {}, action){
switch (action.type) {
case SET_FILTER:
return Object.assign({}, state, {
[action.filterType]: action.filter
})
case REMOVE_FILTER:
var temp = Object.assign({}, state);
delete temp[action.filterType];
return temp;
case REMOVE_ALL_FILTERS:
return {};
default:
return state
}
}
は、私は答えを見つけたと思う選択し直し
http://redux.js.org/docs/recipes/ComputingDerivedData.html
これは理想的とは言えそうです。レデューサーは国家と行動の関数でなければならない。 3番目の議論をイベントリデューサーに渡すことは、一義的です。ここで何が起こっているの詳細を見るのに役立ちます。 'filters'と' events'リデューサーはどのように見えますか? –
こんにちは!あなたは、再選択を使って還元剤の間で状態を分けましたか?どうやったの? –
まあ、 'mapStateToProps'を使って別の解決策を見つけた posted down – Gorilla