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

349
Visualizações
Reaccionar buscar múltiples puntos finales de error de API TypeError: fetch(...).json no es una función

Estoy haciendo un proyecto React.js . Estoy obteniendo datos de una API y los paso desde el componente principal mediante accesorios. Además, estoy usando diferentes puntos finales de la misma API en este componente para niños. Necesito hacer coincidir los "personajes/personas" de los accesorios con los que están dentro de este nuevo punto final de la misma API. Tengo una función que parece funcionar, pero recibo dos errores. El primero no siempre lo es, pero a veces en la consola muestra el error 429 demasiadas llamadas a la API. Hice una función setTimeOut que parece que se resolvió. Pero ahora tengo otro error de la captura que dice: TypeError: fetch(...).json is not a function. Este es el código:

 import styles from './MovieDetail.module.css'; const MovieDetail = ({ film }) => { const peoples = film.properties?.characters.map(async (characterURL) => { try { const people = await fetch(characterURL).json().results; if (people.ok) { setTimeout(() => { return people; }, 1000) }; } catch (err) { console.error('Error peoples', err) } }) console.log('peoples MovieDetail', peoples) return ( <div className={styles.card}> <div className={styles.container}> <h2>{film.properties?.title}</h2> <p>{film.description}</p> <p>Release date: {film.properties?.release_date}</p> <p>Director: {film.properties?.director}</p> <p>Producer: {film.properties?.producer}</p> <p>Characters:</p> {peoples?.map(people=> ( <ul id={styles.list}> <li>{people.properties?.name}</li> </ul> ))} </div> </div> ); } export default MovieDetail;

Este es el código completo en sandbox . Gracias por adelantado.

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

0

Intente esperar la llamada json() por separado.
Además, agregue una matriz de estado para almacenar los datos para mostrar y llamar a la función de fetch en un useEffect :

 const [people, setPeople] = useState([]); const getPeoples = () => { film.properties?.characters.map(async (characterURL) => { try { const response = await fetch(characterURL); const data = await response.json(); if (data.results.ok) { // Add new people to `people` array setPeople((oldPeople) => [...oldPeople, ...data.results]); } } catch (err) { console.error('Error peoples', err); } }); }; useEffect(() => { getPeoples(); }, [film]);
about 4 years ago · Juan Pablo Isaza Relatório

0

Revisé tu código y hay algunos errores que estás cometiendo.

El primero es: está pasando sus accesorios llamados films de su componente principal y obteniendo una film en su componente secundario.

así que cambia esto en tu ItemContainer/index.jsx

 return <MovieDetail key={film?.properties?.episode_id} film={film} />;

y el segundo es: también debe esperar su json:

así que cambia esto en tu MovieDetail/Index.jsx

 const peoples = film?.properties?.characters.map(async (characterURL) => { try { const response = await fetch(characterURL); const people = await response.json().results; if (response.ok) { setTimeout(() => { return people; }, 1000); } } catch (err) { console.error("Error peoples", err); } });
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