Chrome Devtools вылетает на setState без console.info раньше

Я разрабатываю настольную игру и для тестирования обоих игроков у меня есть этот фрагмент кода в моем componentDidMount:

window.swap = () => {
    this.setState({
        self: rotate(this.state.game[0].players, this.state.game[0].players.indexOf(this.state.self))[1]
    })
}

Это в основном выбирает следующий проигрыватель в массиве проигрывателей и устанавливает для него self, чтобы я мог выдавать себя за этого игрока.

Когда я вызываю swap в первый раз, он работает нормально, но когда я вызываю его снова, страница вылетает. тем не мение, если я перед этим добавлю console.info, вот так:

window.swap = () => {
    console.info('what?')

    this.setState({
        self: rotate(this.state.game[0].players, this.state.game[0].players.indexOf(this.state.self))[1]
    })
}

он работает нормально каждый раз. Даже если я сделаю простой цикл for(let i=0; i<100; i++) swap(), он работает нормально, печатает "что?" 100 раз.

Если я закрою DevTools и добавлю что-то вроде этого

setTimeout(() => {
    window.swap()
    window.swap()
}, 5000)

он отлично работает, с console.info или без него на swap. Какие?

Обновлено:

Проверено на:

  • Chrome 70 (сбой)
  • Chrome Canary (72), Chromium, Firefox, Edge (нормально)

Очевидно, эта ошибка будет исправлена ​​в следующих версиях Chrome.

Когда вы говорите "вылетает страница", вы имеете в виду, что получаете сообщение "Ой, щелчок"?

Matt Zeunert 23.10.2018 14:14

Да, и DevTools отключается

Thiatt 23.10.2018 16:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
103
1

Ответы 1

Это ошибка Chrome, которая будет исправлена ​​в следующей версии. Если кто-то может указать мне на страницу проблемы или что-то в этом роде, мне любопытно, чем это вызвано.

Другие вопросы по теме