Uso el efecto de uso para implementar la cancelación. En consecuencia, hay un retardo, que se lleva a cabo en el rebote. El efecto de uso, según tengo entendido, hace que la información se filtre y quede una función vacía. Cómo hacer que si no hay un estado de "costo", la función no funcionará y no habrá advertencia
Error: Advertencia: No es posible actualizar el estado de reacción del componente desmontado. Esto no es una operación, pero indica una pérdida de memoria en su aplicación. Para solucionar esto, cancele todas las suscripciones y tareas asincrónicas en la función de limpieza del efecto de uso.
Código:
function useDebounce(value,fn, delay) { useEffect(() => { const handler = setTimeout(() => { fn() }, delay); return () => { clearTimeout(handler) }; },[value]); }Puede crear un cheque montado.
function useDebounce(value,fn, delay) { useEffect(() => { let mounted = true; const handler = setTimeout(() => { if (mounted) fn(); }, delay); return () => { mounted = false; clearTimeout(handler); }; },[value]); }