Не могу разобраться как правильно настроить React-router 4 для перенаправления авторизированных пользователей с домашней страницы "/" на вложение "/user" у которого свой роутер
Вот какой у меня корневой роутер
import {
BrowserRouter as Router, Route, Switch, Redirect,
} from 'react-router-dom'
const logonUser = () => !!JSON.parse(localStorage.getItem(process.env.REACT_APP_LOCAL_STORAGE))
const App = ({ firebase }) => {
useEffect(() => firebase.onAuthUserListener(... ))
const authorized = useCallback(() => logonUser(), [])
return (
<Router>
<Grid container justify="center" alignItems="center">
{/* It's a bag cannot redirect from the landing page cause non stop redirection to /user
<MyRedirectRoute path={ROUTES.LANDING} authorized={!authorized} component={LandingPage} />
*/}
<Switch>
// Рутовый роутер не получается сделать защищенным, возникает ошибка
// You tried to redirect to the same route you're currently on: "/user/" и компонент не рендерится
<Route exact path={ROUTES.LANDING} component={LandingPage} />
<MyRedirectRoute path={ROUTES.GET_STARTED} authorized={!authorized} component={GetStartedPage} />
// MyRedirect это
// <Route exact {...rest} render={props => (authorized() ? ( <Redirect to={{ pathname: ROUTES.USER }} /> ) : ( <Component {...props} /> )) } />
<MyRedirectRoute path={ROUTES.USER} authorized={authorized} component={UserRouterPage} />
<Route component={() => 'NoMatch'} />
</Switch>
</Grid>
</Router>
)
}
В UserRouterPage у меня свой роутер
const UserRouter = ({ match: { path } }) => (
<Router>
<Route exact path={`${path}`} component={LanguagePage} />
<Route exact path={`${path}${ROUTES.LESSON}`} component={Lesson} />
</Router>
)
Я правильно понимаю, что редирект не видит разницы между / и /user и от этого возникает ошибка?
Как это сделать правильно что бы зарегистрированные пользователи сразу попадали на /user/{компонент Lesson }?