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

154
Visualizações
Los botones se muestran antes de que la API se cargue dentro de la tabla y el cargador no funciona

Tengo una página donde una api se carga lentamente y solo se muestran dos botones en mi página durante algunos segundos, así que decidí agregar un cargador en esa página. Probé el código a continuación, pero el cargador está cargado, no la tabla de páginas.

 import Loader from '../Loader/Loader'; const FileTable = () => { const [isVisible, setIsVisible] = useState(true); const handleLoading = () => { setIsVisible(false); } useEffect(() => { window.addEventListener("load",handleLoading); return () => window.removeEventListener("load",handleLoading) },[]) return !isVisible ? ( <div> My component </div> ):( <div> <h1>Loading...</h1> </div> ) } export default FileTable;

Incluso probé el siguiente código

 const [isVisible, setIsVisible] = useState(false);

y entonces

 if(!isVisible){ return <>Loading</> } return( <> My Component </> )

He probado de las dos maneras pero el cargador no funciona. Los botones también deben ocultarse cuando se carga la página, solo se debe mostrar el cargador hasta que se cargue la API. ¿Cómo lo soluciono?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Un escenario simple y directo sería:

  • Inicialice el estado de carga de su componente en verdadero
  • En el montaje del componente, inicialice la llamada a la API
  • Después de la llamada a la API, establezca el estado de carga del componente en falso
  • Su componente debería, en función del estado de carga, representar un cargador o los datos recuperados de la llamada a la API

Un ejemplo de código sería el siguiente:

 const MyComponent = () => { const [loading, setLoading] = useState(true); const [apiData, setApiData] = useState([]); // or whatever const handleClose = () => { setLoading(false) } useEffect(() => { // Init API call here // then( ..... setApiData()) // Do whatever with API response to set component apiData // finally (() => setLoading(false)) }, []) // empty dependency array is equivalent to componentDidMount if(loading) { return <Loader /> } return <Component data={apiData} /> }

También es una buena práctica manejar eventuales fallas de llamadas a la API.

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