首页 > 解决方案 > 无法在 componentDidMount 中工作 setTimeout

问题描述

尝试setTimeout()在 React js 中构建。我设置了这个,componentnDidMount()但它只工作一次。不工作循环。

编码:

  componentDidMount() {
    setTimeout(console.log("hello"), 1000);
  }

警告显示:

[违规] 'setInterval' 处理程序耗时 99 毫秒

我怎样才能重复这个功能?

标签: javascriptreactjs

解决方案


设置超时(函数等待时间

当您将函数传递给该setTimeout方法时,该方法会等待指定的时间量waitTime,然后调用该函数function。但传入console.log('hello')只是简单地 log out "hello",但不返回任何内容,因此实际上并没有将函数或可调用传递给方法。

很多方法可以解决这个问题:

setTimeout(function(){console.log("hello");},1000); //passes an actual function
setTimeout(()=>{console.log("hello");},1000); //lambda, passes an actual function
setTimeout(()=>console.log("hello"),1000); //same here

此外,如果它应该在间隔内重复,则使用setInterval(same arguments as setTimeout)。


推荐阅读