如果state为true,则运行此组件

时间:2017-07-11 06:49:20

标签: reactjs

ComponentDidMount将每秒更新我的组件(使用setInterval)但是我希望它只在我的状态为真时更新,是否可以这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用setTimeout代替,只有在“状态为真”时才更新超时

componentDidMount() {
  this.start()
}

componentWillUnmount() {
  this.stop()
}

start() {
  this.timeoutId = setTimeout(() => {
     doSmthUseful();

     if(state is true) { // whatever you mean by "if my state is true"
         this.start()
     }
  }, 1000)
}

stop() {
   clearTimeout(this.timeoutId)
}