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

Как правильно проверить Props перед рендером компонента и сделать редирект?

Есть контейнер, в котором прокинуты пропсы через redux и который в рендере выдаёт компонент с этими пропсами.
Проблема в том, что нужно сделать условным вывод компонента, если есть пропсы, то это объект и отрендерить его. Если пропсов нет, то вместо объекта null и редирект через react-router@3 на главную (browserHistory.push('/')).
Проверку и редирект делаю в componentWillMount(). Я это понимаю так, что если мы добрались до этого места и компонент еще не смонтирован, то после команды редиректа не должен произойти рендер, соответственно, не должно быть ошибок о чтении пропсов, что они null. Но, очевидно, я ошибаюсь. Как это правильно делается?
И на засыпку: как писал выше, я использую или заполненный объект {...} или null. PropTypes на данный момент не использую, потому тип не проверяется. Но правильно ли так делает с прицелом на использование PropTypes?
  • Вопрос задан
  • 366 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Метод componentWillMount не рекомендован к использованию. Давно вышел react-router 4.
Вы можете использовать конструктор и history.push, либо render и компонент Redirect.
Вместо PropTypes лучше использовать TypeScript или Flow.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽