Я изменил маршруты в своем приложении, и в случае, если какие-либо пользователи добавили URL-адреса в закладки к старым маршрутам, я добавил некоторые перенаправления на новые маршруты. Большинство из них работают нормально, но это не так -
App.tsx
import { Router } from 'react-router-dom';
import Routes from './Routes';
import history from './history';
const App: FunctionComponent = () => (
<Router history={history}>
<Routes />
</Router>
);
export default App;
RouteSwitch.txs
import React, { FunctionComponent } from 'react';
import { Switch, Route, Redirect } from 'react-router-dom';
const RouteSwitch: FunctionComponent = () => {
return (
<Switch>
<Redirect exact from="/documents" to="/documents/list" />
<Route exact path="/documents/list">
<DocumentsContainer />
</Route>
</Switch>
);
};
export default RouteSwitch;
Перенаправление с /documents
на /documents/list
работает, но DocumentsContainer
не отображается. Если я напрямую запрошу /documents/list
, он будет отображаться нормально. Это как если бы <Switch>
находит первое совпадение (перенаправление), а затем решает, что его работа выполнена. Я попытался добавить опору push
к перенаправлению, но это не имело значения.
Мой пример очень похож на тот, который приведен на сайте React Training - https://reacttraining.com/react-router/web/api/Redirect/from-string
Мысли?