Каков рекомендуемый способ доступа к переменной из другого редуктора? - PullRequest
1 голос
/ 01 мая 2020

Каков рекомендуемый способ доступа к переменной из другого редуктора?

import { createStore, combineReducers } from 'redux';
import mainReducer from './reducers/main';
import configReducer from './reducers/config';


const rootReducer = combineReducers({
    main:mainReducer,
    config:configReducer
});

const store = createStore(rootReducer);

export default store;

У меня есть два разных редуктора, и у меня есть действие внутри mainReducer, где я хочу получить доступ к переменной внутри configReducer. Как правильно сделать это с Redux?

export default function (state, action) {
  switch (action.type) {
      case "UPDATE_ACTIVE":
      //need to check variable options inside configReducer
      default:
        return state;
    }
}

1 Ответ

1 голос
/ 01 мая 2020

По сути, редуктор просто возвращает slice глобального состояния, т.е. store.

Если вы используете промежуточное программное обеспечение, такое как thunk, вы можете обмениваться данными следующим образом:

export function updateActive(params) {
  return (dispatch, getState) => {
    const { config } = getState(); // the part you want to access.

    dispatch({
      type: UPDATE_ACTIVE,
      options: config.options,
      params,
    });
  };
}

Таким образом, вы получаете все данные в самом action, а затем отправляете их с помощью ACTION_TYPE.

Подробнее о состоянии общего доступа между редукторами можно прочитать на:

  1. https://redux.js.org/faq/reducers/
  2. https://redux.js.org/api/store#getstate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...