Задать вопрос
@Sundagy
BEADS

Как правильно связать location.search и state?

Скажем есть строка поиска с кнопкой Найти, если ее кликнуть я делаю history.push('/search?q=' + this.state.search)
А как теперь отследить и обработать переход Назад, чтобы qs.parse(location.search).q снова переходил в состояние?

Главное условие, this.state.search должен быть именно в query части url.
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Можно взять react-router, и у компонента, при изменении props, в момент componentWillReceiveProps (getDerivedStateFromProps) устанавливать новое состояние. Хотя тут в состояние то писать в целом необязательно, так как у вас строка URL адреса и есть состояние. Оно актуальное, незачем дублировать.

Если без react-router'a, то посмотрите в этом туториале пункт "обучаем Router реагировать на изменение адреса" (там не react-router, а просто сделанный компонент Router)

Кнопка "назад" работает, если использовать browserHistory / hashHistory из коробки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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