停止setInterval,如果不能在本机函数中工作

时间:2018-03-25 00:29:03

标签: reactjs react-native

我有以下代码:

contaTempo(){
  setInterval(() => this.setState({tempo: this.state.tempo+1}), 1000)
  if (this.state.tempo >= 5) {
    this.props.navigation.navigate('Sobre')
  }
}

setInterval工作正常但if无法正常工作。此外,计时器neve停止。有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

if正在立即投放。

您希望将其放在传递给setInterval的函数中。

另外,您可能也想删除计时器,因此请clearInterval()返回setInterval上的值。{/ 1>

此外,为了防止向this.state.tempo添加超过必要的内容,请将其移至else语句的if

更改的代码如下:

contaTempo(){
  let myInterval = setInterval(() => {
    if (this.state.tempo >= 5) {
      clearInterval(myInterval);
      this.props.navigation.navigate('Sobre')
    } else {
      this.setState({tempo: this.state.tempo+1});
    }
  }, 1000)
}