useInterval
text
import { useEffect, useRef } from 'react'
type Delay = number | null
type TimerHandler = (...args: any[]) => void
export const useInterval = (callback: TimerHandler, delay: Delay) => {
const savedCallbackRef = useRef<TimerHandler>()
useEffect(() => {
savedCallbackRef.current = callback
}, [callback])
useEffect(() => {
const handler = (...args: any[]) => savedCallbackRef.current!(...args)
if (delay !== null) {
const intervalId = setInterval(handler, delay)
return () => clearInterval(intervalId)
}
}, [delay])
}
Contributors
作者:Long Mo
字数统计:57 字
阅读时长:1 分钟
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs !