【发布时间】:2018-10-22 23:05:57
【问题描述】:
我正在开发一个棋盘游戏并测试两个玩家我在我的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)
无论swap 上有或没有console.log,它都能正常工作。什么?
编辑:
测试日期:
- Chrome 70(崩溃)
- Chrome Canary (72)、Chromium、Firefox、Edge (ok)
显然这个错误在下一个 Chrome 版本中已修复
【问题讨论】:
-
当您说“使页面崩溃”时,您的意思是您收到了“哇,啪”的消息吗?
-
是的,DevTools 断开连接
标签: reactjs google-chrome google-chrome-devtools