Sobes.tech
Middle

import { useState, useCallback } from 'react' const Componente = () => { const [cuenta, setCuenta] = useState(0); const manejarClick = useCallback(() => { console.log(cuenta); }, []); return ( <div> <div onClick={() => setCuenta((prev) => prev + 1)}>Cuenta: {cuenta}</div> <div onClick={manejarClick}>Registrar</div> </div> ); };

sobes.tech AI

Respuesta de la IA

En este ejemplo, handleClick se crea usando useCallback con un array de dependencias vacío []. Esto significa que la función se creará una sola vez al montar el componente y no se actualizará al cambiar count.

Por eso, al hacer clic en el botón "Log", en la consola siempre se mostrará el valor de count que había en la primera renderización (en este caso 0), y no el valor actual.

Para que la función siempre tenga el valor actualizado de count, hay que añadir count al array de dependencias:

const handleClick = useCallback(() => {
  console.log(count);
}, [count]);

O usar una función de actualización del estado con un callback, si se quiere evitar crear la función varias veces.

De esta forma, es importante indicar correctamente las dependencias en useCallback para evitar que se cierre en valores obsoletos.