utility
useInterval
Wrapper declarativo sobre setInterval que sincroniza siempre el callback más reciente sin necesidad de limpiar manualmente.
useInterval.ts
import { useEffect, useRef } from "react"
export function useInterval(callback: () => void, delay: number | null) {
const savedCallback = useRef(callback)
useEffect(() => {
savedCallback.current = callback
}, [callback])
useEffect(() => {
if (delay === null) return
const id = setInterval(() => savedCallback.current(), delay)
return () => clearInterval(id)
}, [delay])
}¿Fue útil?
Inicia sesión para dar feedback
