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

Как при смене адреса закрыть меню?

При смене страницы хочу закрыть меню.

componentDidUpdate(prevProps, prevState, snapshot) {
        if (this.state.menuMobile) {
            if (this.props.location.pathname !== this.props.history.location.pathname) {
                this.setState({
                    menuMobile: false
                })
            }
        }
    }


Почему this.props.location.pathname и this.props.history.location.pathname вдруг оказываются равны ?

Переход делаю на страницу так:
<NavLink to="/" >

Проблема возникает именно при переходе на главную страницу, на остальных проблем нет.
  • Вопрос задан
  • 401 просмотр
Подписаться 2 Простой Комментировать
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Почему this.props.location.pathname и this.props.history.location.pathname вдруг оказываются равны ?

Потому что location и history.location - это один и тот же объект. Ваше условие не выполнится никогда.

Поправить можно так:
componentDidUpdate(prevProps) {
  if (
    prevProps.location.pathname !== this.props.location.pathname &&
    this.state.menuMobile
   ) {
    this.setState({ menuMobile: false });
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
uashkki
@uashkki
Frontend Developer
Попробуйте так: <NavLink exact to="/" >
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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