sinneren
@sinneren

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

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

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

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