React Router переход назад

239
05 апреля 2018, 13:45

1 Есть поиск такого вида /filter/phone/:number

2 Есть редактирование /edit/phone/:number

При открытии 1 ссылки в componentWillReciveProps смотрю все-ли props пришли, если да, то запускаю функцию, которая делает фильтр по number.

Открываю 1 ссылку выбираю запись и переход на 2 ссылку. Делаю переход назад и открывается старая страница, в адресной строке появляется 1 адрес, но фильтр по number нет происходит componentDidMount, componentWillReciveProps не запускаются при переходе назад.

Правка: componentDidMount работает при переходе назад, но у меня теперь два почти одинаковых кода в componentDidMount и componentWillReciveProps. Нельзя ли как-нибудь переписать componentDidMount чтобы он обработался после получения всех props и только потом компонент рендирился?

Answer 1

Если у вас код в этих функциях похожий, то выделите этот код в отдельную функцию и вызывайте из обоих мест.

На поведения самих функциях обработчиков не думаю что можно как-то повлиять, но даже если можно я бы этого делать не стал так как это сделает код менее понятным, функции обработчики уже будут работать не как ожидается. Лучше использовать их по прямому назначению.

Я в своём коде так постоянно делаю. У меня данные получаются и в конструкторе и при апдейте. Я этот код выношу в отдельную функцию GetData() и вызываю там где это нужно.

READ ALSO
3D вращение элемента мышкой html

3D вращение элемента мышкой html

Нужно реализовать подобный функционал

202
Скрытие элемента при клике вне его

Скрытие элемента при клике вне его

Данный код скрывает элементheader__bottom-hover-menu, при клике вне его

240
Шаги заполнения формы с помощью bootstrap 3 и валидацией

Шаги заполнения формы с помощью bootstrap 3 и валидацией

Пытаюсь сделать форму отправки с шагамиBootstrap 3

325
Валидация в nodejs

Валидация в nodejs

Подскажите как сделать валидацию и какие библиотеки используете ?

211