URL доступа в редукторе Redux - PullRequest
0 голосов
/ 19 июня 2019

У меня есть языковой редуктор, который имеет начальное значение локали:

const LanguageReducer = function(
  state = { locale: "en", messages: {} },
  action = {}
) {
  switch (action.type) {
    case CHANGE_LANGUAGE_SUCCESS:
    ...
      return state;
    default:
      return state;
  }
};

Начальное значение локали исходит из текущего URL.Как я могу получить доступ к URL и параметру локали в моем редукторе для инициализации локали?Я использую React-Router v4

1 Ответ

1 голос
/ 19 июня 2019

У вас есть (как минимум) два варианта, в зависимости от ваших потребностей:

1) Самый простой способ - отправить действие с первой страницы, которую загружает ваше приложение, используя Route props для передачи нужного параметра url вашему редуктору. См. эту страницу для руководства. Это путь, если вы можете сохранить свое состояние Route и состояние остальных приложений отдельно.

2) Более сложный метод заключается в использовании промежуточного программного обеспечения, такого как connected-реакции-router , для обеспечения синхронизации вашего хранилища и React Router. Это даст вам свойство router в вашем магазине (содержащее историю, местоположение и т. Д.), Из которого вы сможете читать в любое время.

...