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

183
Vistas
¿Cómo representar el componente solo cuando los datos se obtienen de la API?

Tuve un problema con la actualización de la página en la aplicación de reacción con el uso de la API de contexto. Después de actualizar la página en mi consola, veo estos registros:

ingrese la descripción de la imagen aquí

mi contexto obtiene datos de la API de descanso, pero solo la tercera vez, por lo que mi intervalo está vacío después de finalizar la actualización de la página: /

Aquí está mi componente con el uso de datos de la API de contexto.

Encabezado/index.tsx

 const { currentAccount } = useContext(AppContext); console.log("ACCOUNT: ", currentAccount); return ( <span>{currentAccount?.name}</span> );

Este es mi contexto de aplicación

ApplicationContext.tsx

 useEffect(() => { checkLogin(); }, []); const checkLogin = async () => { console.log("checkLogin"); setLoggedIn(false); const token = localStorage.getItem("session"); if (token) { const decode = jwt(token); const query = { id: decode["id"] }; const response: Account = await axios.get("/auth/account", query); setCurrentAccount(response); setLoggedIn(true); } else { setCurrentAccount(null); setLoggedIn(false); } }

Aquí también está mi enrutamiento desde App.tsx

 <AppContextProvider> {publicRouting.map(({ path, component }, i) => ( <Route key={i} path={path} component={component} /> ))} <Main> {privateRouting.map(({ path, component }, i) => ( <Route key={i} path={path} component={component} /> ))} </Main> </AppContextProvider>

¿Alguien puede decirme cómo renderizar el componente solo cuando los datos ya se obtuvieron de mi API de descanso? Todo esto está sincronizado, por lo que debo esperar hasta que los datos lleguen a la aplicación.

¡Gracias por cualquier ayuda!

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

0

A mí, personalmente, me gusta adoptar el siguiente enfoque al renderizar este tipo de cosas:

 const RenderOnFetch = () => { const [data, setData] = useState({}); const [isLoading, setIsLoading] = useState(false); useEffect(async () => { await setIsLoading(true); const fetchedData = await fetchData(); setData(fetchedData); await setIsLoading(false); }, []); return ( <> {isLoading && <p>Data is being loaded..</p>} {!isLoading && <p>Data has been fetched..</p>} </> ) }
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