【问题标题】:Chrome Devtools crashes on setState without a console.log beforeChrome Devtools 在 setState 上崩溃,之前没有 console.log
【发布时间】: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


【解决方案1】:

这是 Chrome 的一个错误,将在即将发布的版本中修复。如果有人可以将我指向问题页面或其他内容,我很好奇是什么原因造成的。

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 1970-01-01
    • 2017-10-05
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2017-07-19
    • 2022-01-10
    相关资源
    最近更新 更多