Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

204
Visualizações
¿Por qué la variable useState no está definida dentro de la instrucción try catch en una función asíncrona?

Creo un gancho que administra el estado de un solo objeto con fetch to api. Este gancho expone la función para interactuar con este objeto.

 // the hook const useMyHook = () => { const [myObject, setMyObject] = useState(null); useEffect(() => { const fetchData = async () => { const data = await fetchSomething(); setMyObject(data); } fetchData(); }, []); const updateMyObject = async () => { console.log(myObject); // log : { ... } try { console.log(myObject); // log : undefined // ... } catch(err) { // ... } }; return { updateMyObject, myObject }; };

Luego uso este gancho dentro de un componente y updateMyObject() con un botón.

 // the component const MyComponent = () => { const { myObject, updateMyObject } = useMyHook(); return ( <button onClick={updateMyObject}> Click me </button> ); };

¿Cómo es posible que antes del bloque try catch el registro esté limpio y dentro del bloque quede undefined ?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¡Tu código está perfectamente bien! Podría haber un problema en el fetchSomething() method . Idealmente, debería devolver datos, pero no está haciendo el mismo trabajo.

Aquí hay un pequeño ejemplo. Puedes darle una oportunidad.

 const fetchSomething = async () => { const response = await fetch( "https://jsonplaceholder.typicode.com/posts/1" ).then((res) => res.json()); return response; };
about 4 years ago · Juan Pablo Isaza Relatório

0

creo que esto va a funcionar

 useEffect(() => { const fetchData = async () => { const data = await fetchSomething(); setMyObject(data); } If(!myObject) fetchData(); }, [myObject]);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda