Chrome Devtools аварийно завершает работу на setState без console.log - PullRequest
0 голосов
/ 23 октября 2018

Я разрабатываю настольную игру, и для тестирования обоих игроков у меня есть этот фрагмент кода в моем 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.log до этого, вот так:

window.swap = () => {
    console.log('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.log или swap или без него.Что?

РЕДАКТИРОВАТЬ:

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

  • Chrome 70 (сбой)
  • Chrome Canary (72), Chromium, Firefox, Edge(хорошо)

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

1 Ответ

0 голосов
/ 23 октября 2018

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

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