React Router Redux, Switch не учитывает locationBeforeTransitions

Пришлось очень много копать, чтобы найти эту проблему.

Использование:

"history": "^ 4.6.3",
"react": "^ 15.6.1",
"react-dom": "^ 15.6.1",
"react-redux": "^ 5.0.5",
"response-router-dom": "^ 4.1.2",
"response-router-redux": "^ 4.0.8",

И:

<Switch>
  <Route exact path="/" component={MyComponent1} />
  <Route path="/route2" component={MyComponent2} />
</Switch>

Факты:

Компонент Switch ничего не знает о locationBeforeTransitions. Я полагаю, этот объект вводится с помощью response-router-redux.

Чтобы решить эту проблему, мне пришлось передать locationBeforeTransitions через mapStateToProps и ...

<Switch location={this.props.location} />

так что мой компонент-переключатель знает, каково текущее местоположение.

Два вопроса:
1. Почему я должен был это сделать, учитывая, что response-router-redux должен с этим справиться?
2. Есть ли другой способ сделать это?

Спасибо


person Marco Afonso    schedule 02.08.2017    source источник


Ответы (1)


response-router-redux совместим только с response-router версий 2.x и 3.x, и вы используете React Router v4

Это новая версия, и они сильно ее изменили

В версии 4 нет централизованной конфигурации маршрута. Везде, где вам нужно визуализировать контент на основе маршрута, вы просто визуализируете компонент.
src: https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/migrating.md < / а>

Я рекомендую вам придерживаться v4 и просто изучить ее заново.

person Fen1kz    schedule 02.08.2017
comment
спасибо, вы ответили на мой первый вопрос. Мне нужен пример кода для второго вопроса. - person Marco Afonso; 30.08.2017