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

130
Visualizações
Memorizar la llamada del servidor asíncrono en reaccionar

Tengo una variedad de widgets para la aplicación y cada componente de widget llama a la API para obtener sus datos. Hay varios tipos de widgets, gráficos, listas, tablas, etc. y la situación dicta que la página principal no puede llamar a los datos en sí misma, por lo que los componentes secundarios (widgets) tienen que hacerlo.

 widgetsArr.forEach((item)=> <Widget type={item.type} widgetConfig={item.config} />)\

Sin embargo, hay una configuración para la posición del widget en la página, basada en el índice de widgets en la matriz. La función simple hace el truco para esa parte:

 useEffect(() => { if (boardsContext.customisation) { setWidgetsArr(arrayMove(widgets, oldIndex, newIndex)); } }, [dep1,dep2]); // setWidgetsArray is setter for widgets array that lives on the same page as code above.

¿Entonces, cuál es el problema? Cuando configuro WidgetsArr nuevamente, cada uno está obteniendo datos nuevamente. Me gustaría evitar eso de alguna manera, pero dado que el estado y los accesorios del componente principal se cambian, se activa nuevamente.

Probé con useMemo, pero use memo no acepta promesas en su interior. Aquí hay una muestra de un código:

 const memoFetch = useMemo(()=>fetchChartsData(args).then((data) => isMounted && setData(data));, [deps]) useEffect(() => { let isMounted = true; //fetchChartsData(args).then((data) => isMounted && setData(data)); memoFetch() return () => { isMounted = false; }; }, [dependecy]); // this is individual Widget sample code (its not same for all the widgets but its similar

para este caso en particular estoy recibiendo:

 TypeError: Cannot read properties of undefined (reading 'fetchData')

Editar: estaba mirando esta pregunta y no me ayudó mucho además de recordarme que no debería usar useMemo y la llamada asíncrona entre sí.

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