Я не думаю, что вам нужен доступ к редуктору. Функция Reducer будет обновлять хранилище в зависимости от действия, которое она прослушивает. Вот пример:
import * as constants from 'constantpathhere';
export function feedReducer(state = INITIAL_STATE, action) {
const { type, payload } = action;
switch(type) {
case constants.ADD_FEED: // listen to ADD_FEED action
return {... state, data: payload };
case constants.LOAD_FEEDS: // listen to LOAD_FEEDS
return {...state, loading: true }
...
default:
return state;
}
}
export function headReducer(state = INITIAL_STATE, action) {
const { type, payload } = action;
switch(type) {
case constants.ANY_ACTION: // listen to ADD_FEED action
return {... state, data: payload };
case constants.ANY_OTHER_ACTION_LOADING: // listen to LOAD_FEEDS
return {...state, loading: true }
...
default:
return state;
}
}
//ACTIONS
export function loadFeeds() {
return {
type: constants.LOAD_FEEDS
}
}
export function addFeed(payload) {
return {
type: constants.ADD_FEED,
payload
}
}
export function triggerAnyAction(payload) {
return {
type: constants.ANY_ACTION,
payload
}
}
Эти действия выше могут быть отправлены из любого компонента, будь то Header
или Feeds
, только редуктор (ы), слушающий это конкретное действие, обновит хранилище.
Вкратце, вам нужно только знать, какое действие отправлять, и только перечисление редуктора к этому действию будет выполнять то, что вы ему указали