@TheRevan

Как сделать редирект в компоненте который ничего не знает о route?

Есть главный компонент:
ReactDOM.render(
  <BrowserRouter>
    <Switch>
      <Route exact  path='/' render={() => (isAuth() ? (<Redirect to="/orders"/>) : (<Redirect to="/login"/>))}/>
      <Route exact  path='/products' render={() => (isAuth() ? (<Redirect to="/orders"/>) : (<Redirect to="/login"/>))}/>
      <Route exact  path='/orders' render={() => (isAuth() ? (<PageOrders/>) : (<Redirect to="/login"/>))}/>
      <Route exact  path='/add_order' render={() => (isAuth() ? (<PageAddOrder/>) : (<Redirect to="/login"/>))}/>
      <Route exact  path='/login' render={() => (isAuth() ? (<Redirect to="/orders"/>) : (<Autorize/>))}/>
    </Switch>
  </BrowserRouter>,
document.getElementById('root'));


При этом компонент который загружается в Render(Любой, например PageOrders или PageAddOrder) содержит структуру с меню, футером и контентом, в контенте свой компонент, который меняется в зависимости от выбранной страницы. Суть в том, что мне нужно например на странице авторизации, после успешной авторизации средиректить на главную или на страницу заказов, как мне это сделать?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Здесь уже можно улучшить, сделав HOC компонент - PrivateRoute

Про редирект (в экшене вызывается callback) + запрос в компоненте.

p.s. Это все было решено на вебинаре. Пример (решение тестового задания, видео-разбор)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы