Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
¿Por qué mi useEffect() obtiene datos de manera poco confiable? No puedo mapear los datos porque recibo algunas respuestas indefinidas - ReactJS

Tengo una barra lateral que establece una identificación de categoría al hacer clic y muestra información del producto basada en esta identificación.

Para mostrar los detalles de cada producto, realizo una llamada de publicación de api usando axios en un gancho useEffect() y setData con el gancho useState.

Sin embargo, cuando intento consolar. registrar los datos, obtengo datos poco confiables, es decir, algunos indefinidos y algunos datos.

 import { useState, useEffect, useCallback, useMemo } from "react"; import axios from "axios"; import ProductCard from "../Product-cards/_medium-product-card"; const ProductDisplay = ({ subCategorySkus, categoryId, allSkus }) => { const [data, setData] = useState(); const [isLoading, setIsLoading] = useState(); const apiRequest = { product_skus: allSkus }; const productData = useProductData(apiRequest); useEffect(() => { const fetchData = async () => { try { const response = await axios.post("/products", apiRequest); setData(response.data); setIsLoading(false); } catch (err) { console.log(err.message); } }; fetchData(); }, [categoryId]); console.log(data); return isLoading ? ( " data is loading ..." ) : ( <div className="product-display"> <h3>Child component Id: {categoryId}</h3> <ProductCard categoryId={categoryId} /> </div> ); }; export default ProductDisplay;

Puedes ver aquí lo que obtengo en la consola: registro de consola de muestra .

He intentado agregar una condición if, pero no estoy seguro de que solucione el problema. He probado con diferentes dependencias en el useEffect. Pero siento que hay algo que no estoy entendiendo.

La api está enviando la información correctamente, pero recibo varias respuestas en el archivo console.log y algunas de ellas aparecen como indefinidas.

Esto significa que puedo hacer un mapa de datos porque bloquea el componente.

¿Alguna ayuda?

ACTUALIZAR:
@moonwave99 proporcionó la respuesta (ver más abajo). Para el beneficio de otros que pueden navegar a través de esta pregunta y para aclarar lo que implica la solución, incluyo una imagen a continuación, que muestra dónde cambié mi código. Creo que lo más importante es que no había inicializado mi useState() en una matriz vacía, como esta: useState([]).

Cualquier aclaración adicional de los problemas aquí por parte de cualquiera que sepa más, es bienvenida. Como esto es solo una solución rápida sin suficiente contexto para entender la lógica.

puntos de edición de código

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda