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

366
Views
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 answers
Answer question

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 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!