Sobes.tech
Middle

import { useState, useCallback } from 'react' const Componente = () => { const [contagem, setContagem] = useState(0); const handleClick = useCallback(() => { console.log(contagem); }, []); return ( <div> <div onClick={() => setContagem((prev) => prev + 1)}>Contagem: {contagem}</div> <div onClick={handleClick}>Registar</div> </div> ); };

sobes.tech IA

Resposta da IA

Neste exemplo, handleClick é criado usando useCallback com um array de dependências vazio []. Isso significa que a função será criada uma única vez na montagem do componente e não será atualizada ao alterar count.

Por isso, ao clicar no botão "Log", o console sempre exibirá o valor de count que havia na primeira renderização (neste caso 0), e não o valor atual.

Para que a função sempre tenha o valor atualizado de count, é necessário adicionar count ao array de dependências:

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

Ou usar uma função de atualização do estado com um callback, se desejar evitar recriar a função desnecessariamente.

Assim, é importante indicar corretamente as dependências no useCallback para evitar capturar valores desatualizados.