const intervalIdRef = useRef(null); // 使用 useRef 创建一个可变的引用
const [counter, setCounter] = useState(0);
const startTimer = ((appName) => {
clearInterval(intervalIdRef.current); // 清除之前的定时任务
const id = setInterval(() => {
setCounter(prevCounter => {
const updatedCounter = prevCounter + 1;
console.log(updatedCounter);
if (updatedCounter % 5 === 0) {//30分钟自动停止
clearInterval(id); // 停止定时任务的执行
}
return updatedCounter;
}); // 使用 callback 形式的 setCounter 来更新计数器
console.log(id)
console.log(appName)
getData(appName); // 每隔一段时间调用一次接口获取数据
}, 60 * 1000);
intervalIdRef.current = id; // 将计时器ID保存到 useRef 的引用中
})
const search = () => {
const fieldsValue = searchForm.getFieldsValue()
if (fieldsValue.appName) {
setFieldsValue(fieldsValue)
clearInterval(intervalIdRef.current = id); // 清除之前的定时任务
startTimer(fieldsValue.appName);
getData(fieldsValue.appName);
}
}
setInterval实现定时停止
于 2023-08-30 17:11:11 首次发布