Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

175
Views
¿Cómo establece useState las variables?

He publicado algo similar en el pasado y nunca obtuve una respuesta y sigo teniendo este problema. Las cosas en mi aplicación funcionan, pero no estoy muy seguro de por qué. Estoy usando una API de terceros para hacer una aplicación de recetas simple. Los datos que paso a mi componente se muestran como se esperaba, pero no se inicia sesión en la consola como se esperaba.
La línea 20 de App.js está registrando lo que esperaría (los datos recibidos de la API). La línea 4 de Recipe.jsx está registrando lo que esperaría (cada elemento en la matriz de recetas). Pero la línea 22 de App.js vuelve como indefinida. Esperaría que debido a que configuré Recetas en 'datos', esas 'recetas' registrarían lo mismo que 'datos'. ¿Puede alguien explicarme esto?

 import React, { useEffect, useState } from "react"; import "./App.css"; import Recipe from "./Recipe"; import axios from "axios"; function App() { const APP_ID = "XXXXXXXX"; const APP_KEY = "XXXXXXXXXXXXXXXXXXX"; const url = `https://api.edamam.com/api/recipes/v2?type=public&q=chicken&app_id=${APP_ID}&app_key=${APP_KEY}`; const [recipes, setRecipes] = useState([]); useEffect(() => { getRecipes(); }, []); const getRecipes = async () => { const res = await axios(url); const data = await res.data.hits; console.log(data); setRecipes(data); console.log(recipes); }; return ( <div className="App"> <form className="search-form"> <input className="search-input" type="text" /> <button className="search-button" type="submit"> Search Recipes </button> </form> {recipes && recipes.map((recipe, idX) => <Recipe recipe={recipe} id={idX} />)} </div> ); } export default App;
 import React from "react"; const Recipe = ({ recipe, id }) => { console.log(recipe); return ( <div key={id}> <h1>{recipe.recipe.label}</h1> <p>{recipe.recipe.calories}</p> <img src={recipe.recipe.images.SMALL.url} alt="" /> </div> ); }; export default Recipe;
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

SetState es asíncrono y es posible que no se resuelva de inmediato. Consulte esta parte de los documentos para obtener más información.

https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous

Como ha dicho, los datos que regresan son correctos y ha realizado una llamada para establecer el estado. Pero el estado no se ha resuelto cuando llega a la siguiente línea donde se consola el estado

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!