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

353
Visualizações
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 Respostas
Responde à pergunta

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