我有以下代码:
contaTempo(){
setInterval(() => this.setState({tempo: this.state.tempo+1}), 1000)
if (this.state.tempo >= 5) {
this.props.navigation.navigate('Sobre')
}
}
setInterval
工作正常但if
无法正常工作。此外,计时器neve停止。有什么帮助吗?
答案 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)
}