setinterval - 是否可以在应用程序中有条件地清除 setInterval?
问题描述
我从输入的 onChange 调用此函数:
const [timekeep, setTimekeep] = useState<NodeJS.Timeout>()
function callChangeColor(newUrl: string) {
if (changeColor === true) {
setChangeColor(false)
clearInterval(timekeep)
let intervalId = setInterval(() => {
getLaunchState(newUrl)
}, 4000)
setTimekeep(intervalId)
return getLaunchState(newUrl)
} else {
return strLaunch
}
}
我不想有几十个 setInterval ,但我似乎找不到在每次新更改后清除间隔的方法。clearInterval(timekeep) 也有问题,因为它的类型为 'Timeout | undefined' 而不仅仅是 'Timeout' 并创建一个 setInterval 给 useState 会破坏创建 timekeep 状态的目的。
解决方案
推荐阅读
- c - 打印存储为 unsigned long long 数组的大整数
- flutter - 颤振提供者
- java - 当时间比较评估为真时,如何在 Java 中实时更新 Excel .csv 文件?
- html - 在带有ejs的forEach循环中使用rowspan?
- mysql - 如何创建基于条件的 INSERT 触发器,更新或插入另一个表?
- sql - 使用现有查询创建过程时出错
- laravel - Laravel 商店(可空验证错误)
- wpf - WPF datagrid 一列作为组合框添加每一行不同的列表
- ios - Objective-C 中的作用域 NSArray
- swift - 半纬度/长三角洲,无需扩展