Использование реагирующего маршрутизатора внутри редукса - PullRequest
0 голосов
/ 16 июня 2019

Если мы хотели программно изменить маршрут в рамках redux, мы использовали пакет react-router-redux npm. Однако он был заархивирован его автором. Теперь рекомендуемое решение connected-react-router:

https://www.npmjs.com/package/connected-react-router

Но, как говорят в этом пакете документы, для его работы следует использовать INSTEAD из react-router.

Обычно я использовал react-router-dom:

import { BrowserRouter } from 'react-router-dom';

<BrowserRouter>
   <Route path='/' />
   <Route path='/hey' />
</BrowserRouter>

Но, как говорят документы, я должен заменить react-router v4/v5 на ConnectedRouter из пакета:

import { ConnectedRouter } from 'connected-react-router';

<ConnectedRouter history={history}>
   <Route path={'/'} />
   <Route path={'/foo'} />
</ConnectedRouter>

Но эта ситуация вызывает проблему с Link из react-router-dom. Link должен быть размещен внутри BrowserRouter, но я НЕ МОГУ ИСПОЛЬЗОВАТЬ ЭТО, потому что нет BrowserRouter, потому что, КАК ДОКАЗЫВАЮТСЯ ДОКУМЕНТЫ - "Не забудьте удалить любое использование BrowserRouter или NativeRouter, так как оставление этого приведет к проблемам синхронизация состояния. "

Проблема в том, что ConnectedRouter является подключенной версией react-router, а не react-router-dom, поэтому в ней нет ничего похожего на Link или NavLink.

Должен быть какой-то способ, если я не верю, что этот пакет не будет иметь 3k звезд на github ...

Вопрос: Как использовать Link внутри ConnectedRouter? Спасибо!

1 Ответ

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

Я рекомендую придерживаться только реакции-роутера-dom.

Больше нет необходимости подключать его к редуксу. В прошлом могла быть причина, потому что было трудно прочитать текущее имя пути или параметр поиска, так как только компоненты главной страницы получали их как местоположение. Но сейчас вы можете читать откуда угодно благодаря withRouter.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...