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

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

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