gpt4 book ai didi

reactjs - React 中的clearInterval

转载 作者:行者123 更新时间:2023-12-03 13:17:04 27 4
gpt4 key购买 nike

我是 React 新手,我试图创建一个带有开始和停止按钮的简单秒表。我正在用头撞墙,尝试使用“停止”按钮上的 onClick 事件来清除Interval。我会为 setInterval 声明一个变量,然后使用clearInterval 清除它。不幸的是它不起作用。有小费吗?预先感谢您。

import React, { Component } from 'react';

class App extends Component {
constructor(props){
super(props);
this.state = {time:0}

this.startHandler = this.startHandler.bind(this);
}

getSeconds(time){
return `0${time%60}`.slice(-2);
}

getMinutes(time){
return Math.floor(time/60);
}

startHandler() {
setInterval(()=>{
this.setState({time:this.state.time + 1});
},1000)

}

stopHandler() {
//HOW TO CLEAR INTERVAL HERE????
}

render () {
return (
<div>
<h1>{this.getMinutes(this.state.time)}:{this.getSeconds(this.state.time)}</h1>
<button onClick = {this.startHandler}>START</button>
<button onClick = {this.stopHandler}>STOP</button>
<button>RESET</button>
</div>
);
}
}

export default App;

最佳答案

您可以向组件的状态添加间隔,并可以随时清除它。

componentDidMount(){
const intervalId = setInterval(this.yourFunction, 1000)
this.setState({ intervalId })
}

componentWillUnmount(){
clearInterval(this.state.intervalId)
}

关于reactjs - React 中的clearInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com