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