Задать вопрос
@raft88

Как передать props в React-router?

Привет!

<Route
  component={() => logged ? <Product /> : <Redirect to='/' />}
  exact
  path='/products/:id'
/>


при такой записи в компоненте Product в props теряются данные, в итоге нет match, где можно взять id продукта. Как переписать Route, чтобы не потерять props?

при такой записи работает корректно, но нет проверки на то, что пользователь залогинен
<Route
  component={Product}
  exact
  path='/products/:id'
/>
  • Вопрос задан
  • 6051 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
eternalSt
@eternalSt
Доброго времени суток!

У компонента Route есть параметр render.

<Route
  render = { props => logged ? <Product /> : <Redirect to='/' /> }
  exact
  path='/products/:id'
/>


И важно, в доках об этом конечно сказанно, но я повторюсь.
component имеет приоритет над render, так что использовать их вместе не стоит.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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