как установить isTop, чтобы быть ложным - PullRequest
0 голосов
/ 13 июня 2019

Итак, я проверяю, находится ли пользователь на устройстве меньше 768 пикселей, и если это так, я хочу установить для isTop значение false.Я сталкиваюсь с несколькими проблемами.Все выглядит нормально, но я получаю эту ошибку:

Ошибка типа: _this2.state.isTop не является функцией

С чем я работаю:

componentDidMount() {
  this.updateWindowDimensions();
  window.addEventListener('resize', this.updateWindowDimensions);
  document.addEventListener('scroll', () => {
    const isTop = window.scrollY < window.innerHeight - 50;
    if (isTop !== this.state.isTop) {
      this.setState({ isTop })
    }
  });

  this.checkWidth = () => {
    const match = window.matchMedia(`(max-width: 768px)`);
    if (match) {
      this.state.isTop(false);
    }
  };

  this.checkWidth();
  window.addEventListener('resize', this.checkWidth);
}

Буду признателен за любую помощь

Ответы [ 2 ]

4 голосов
/ 13 июня 2019

Ваш синтаксис кажется неправильным для установки состояния isTop в false. (Источник: документы )

Попробуйте вместо этого

this.setState({isTop: false});
0 голосов
/ 13 июня 2019

Вам нужно объявить состояние в конструкторе

constructor(props) {
    super(props);
    this.state = {isTop: false}
}

Чтобы установить состояние

this.setState({
    isTop: "YourValue"
});

Для получения

this.state.isTop;

Не так, как вы

this.state.isTop(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...