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

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

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽