Как получить доступ к состоянию разных редукторов в React - PullRequest
0 голосов
/ 03 января 2019

У меня есть ситуация, когда мне нужно получить доступ к данным аутентификации в другом модуле

Например.

У меня есть два разных файла редуктора

  • auth.js

  • todo.js

Теперь мне нужно получить доступ к состоянию автоматического редуктора в todo, и для этого я объединил редуктор

Но когда я пытаюсь укротить консоль, я не могу получить доступ к данным аутентификации в модуле todo

У нас есть какой-нибудь простой подход, дайте мне знать об этом

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Думаю, вам нужно mapStateToProps

function mapStateToProps(state){

  return {
      auth: state.auth,
      todo: state.todo

  }
}
0 голосов
/ 03 января 2019

У меня есть решение, когда я сам занимаюсь исследованиями и разработками

Проблема в том, что я использовал в своем todo-модуле только редуктор todo, но если нам нужно использовать данные другого редуктора, чем нам нужно отображать состояния отдельно, как показано ниже

const mapStateToProps = state => {
  const auth =
    state.get('auth') && state.get('auth').toJS && state.get('auth').toJS();
  const todo =
    state.get('todo') && state.get('todo').toJS && state.get('todo').toJS();
  return {
    ...auth,
    ...todo
  };
};

это то, как мы можем получить доступ к нескольким данным о состоянии в наши модули, используя mapStateToProps, и можем вернуть их в соответствии с требованиями бизнеса

0 голосов
/ 03 января 2019

Вам нужно собрать ваши редукторы в магазине Redux. Традиционно, вы бы сделали это по import {createStore, combineReducers} from "redux"

И настройте свой магазин как:

const store = createStore(combineReducers({
   auth: authReducer,
   todo: todoReducer
}))

Таким образом, ваши подключенные компоненты имеют доступ к обоим состояниям редуктора в любой момент времени. В противном случае, нет смысла смешивать данные между двумя редукторами. Редукторы должны управлять своим собственным состоянием, и они должны действовать независимо как таковые.

...