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

213
Visualizações
Diferencie entre el error 404 y se está cargando en reaccionar y renderice los componentes en base a eso. Reaccionar

Estoy tratando de representar un componente de esqueleto al cargar los datos o el componente de error 404 si no se encuentran datos hasta ahora. He intentado usar declaraciones if else y operadores lógicos hasta ahora ninguno funciona correctamente.

 const [post, setPost] = useState(null); const [postExternal, setPostExternal] = useState([]); const fetchPost = () => { axios.get(`${API_ONE}/posts?id=${id}`).then((response) => { setPost(response.data); }); axios.get(`${API_TWO}/posts?id=${id}`).then((response) => { setPostExternal(response.data); }); return; }; const location = useLocation(); const id = location.pathname.split('/')[2]; useEffect(() => { fetchPost(); }, [id]); { post && postExternal && ( <div> <h1>{post.title}</h1> <img src={postExternal} /> </div> ); } { !post && (post && post.id === postExternal.id ? ( <NotFound message='not found' /> ) : ( <SkeletonItemPage /> )); }

Nota: Los datos se obtienen de dos apis diferentes

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

0

Defina una variable de estado de carga de la siguiente manera:

 const [isLoading, setIsLoading] = useState(false);

Entonces su función fetchPosts sería como:

 const fetchPost = () => { const apiOnePromise = axios.get(`${API_ONE}/posts?id=${id}`); const apiTwoPromise = axios.get(`${API_TWO}/posts?id=${id}`); //toggle loader setLoading(true); Promise.all([apiOnePromise, apiTwoPromise]) .then(values => { //handle your responses here }) .finally(() => { //toggle loader again setLoading(false); }) };

Usando esta variable de carga, puede diferenciar entre las estatuas, por lo que con su jsx puede hacer:

 { loading && <SkeletonItemPage /> } { !loading && posts.length === 0 && <NotFound message='not found' /> }
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