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

354
Vistas
Advertencia: no se puede actualizar un componente X mientras se renderiza un componente Y diferente. Para ubicar la llamada incorrecta a setState() dentro de Y,

Tengo un componente Cart con react-redux y tengo un componente showProducts que obtiene los productos de una API (usando await-async) dentro de useEffect, y luego uso useState para establecer algunos de los estados y uso dispatch para actualizar redux estado también. Sigo recibiendo esta advertencia:

 Warning: Cannot update a component (`Cart`) while rendering a different component (`ShowProducts`). To locate the bad setState() call inside `ShowProducts`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render ShowProducts@http://localhost:3000/static/js/main.chunk.js:3099:73

Tengo una página de tienda y en mi página de tienda tengo:

 <Grid item xs container > <ShowProducts /> </Grid> <Grid item xs container direction="column"> <Cart /> </Grid>

y en mis productos de espectáculo:

 useEffect(async () => { await getData(); }, []); . dispatch(setShippingCosts); dispatch(setCompanyNam); . . . async function getData() { fetch( `url` ) .then((res) => res.json()) .then((data) => { . . . setProducts(...); setShippingCost(...); . }) .catch((error) => { setError(error); }); }

y en mi carrito estoy usando el costo de envío que viene del componente mostrar productos. No estoy seguro de cómo solucionar esta advertencia, he estado buscando y aún no he encontrado una solución. qué tan seria es esta advertencia, y no estoy seguro de por qué la estoy recibiendo.

advertencia completa: ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es cuando un componente pone en cola una actualización en otro componente, mientras el primer componente se está procesando. ( Error: demasiado difícil de solucionar "No se puede actualizar un componente desde el interior del cuerpo de la función de un componente diferente". )

Problema :

Mientras ShowProducts se procesa, también envía una acción que hace que se ponga en cola una actualización en el carrito.

Arreglo :

Mueva el despacho dentro de useEffect.

Explicación :

Al usar este Hook, le dices a React que tu componente necesita hacer algo después del renderizado. React recordará la función que pasó (nos referiremos a ella como nuestro "efecto") y la llamará más tarde después de realizar las actualizaciones de DOM. ¿Qué hace useEffect?

El siguiente es un bolígrafo sandbox para demostrar el error y la solución. (Abra la consola en la esquina inferior derecha para ver la advertencia, puede comentar el envío en el renderizado y ver que la advertencia desaparece)

Tenga en cuenta que está utilizando useEffect async y se supone que solo debe sincronizarse. Leer aquí

about 4 years ago · Juan Pablo Isaza Denunciar
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