javascript - 在 React 中设置超时

标签 javascript reactjs

我正在尝试弄清楚如何在 React 中触发 setTimeout

我对 React 还很陌生,正在查看文档和“tic-tac-toe”指南。我修改了指南中的代码,我想在找到游戏获胜者 3 秒后将状态重置为初始值。

我能找到的唯一信息是在组件的生命周期中使用setTimeout,但就我而言,如果组件已安装,我不想设置Timeout。我想在 calculateWinner() 返回真值之后触发它。

是否有可能在 React 中实现类似的目标,或者为了做到这一点,我应该重组我的应用程序/组件架构吗?

这是我的示例:https://codesandbox.io/s/6l607x80r

大部分事情都发生在 Board 组件中,我在其中创建了一个 countDown() 函数,但我不确定如何触发它。

最佳答案

您可以像这样使用componentDidUpdate生命周期:

componentDidUpdate() {
  if (calculateWinner(this.state.squares)) {
    this.countDown();
  }
}

此外,您还需要更改 countDown 函数:

setTimeout(() => {
  this.setState({
      squares: Array(9).fill(null),
      xIsNext: true,
    })
  }, 3000);

关于javascript - 在 React 中设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839973/

相关文章:

reactjs - 在 react-test-renderer 测试中渲染 jest 快照之前运行 useEffect hook

reactjs - React 组件的生命周期、状态和 redux

javascript - Node + Express + Swig/将本​​地 json 文件传递​​给模板

Javascript 没有将另一个页面加载到 DIV 中

javascript - angularJS - 添加带有 ng-options 的静态选项

Javascript - 确保字符串字段包含某些字符和数字

javascript - 在对象解构中使用冒号

javascript - 我对该代码的逻辑流程遇到了问题,并且导致了错误的输出

javascript - 为什么返回的数据是一样的?

css - react : How to set width and height of an element in react component programatically