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

259
Visualizações
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'poster_path')

Tengo esta función asíncrona que obtiene datos de la API, pero cuando uso los datos, aparece un error de tipo indefinido con la matriz de películas. Pero luego uso "&&" para decirle que si está vacío, no ejecute el bloque, pero aún da el error. Lo he hecho por el operador ternario también pero sigue igual.

Aquí está el gancho de efecto de uso que está obteniendo datos de la API

 const [movies, setMovies] = useState([]) useEffect(() => { async function fetchData() { const request = await axios.get(fetchUrl); setMovies(request.data.results); console.log(movies); return request; } fetchData(); }, [fetchUrl]);

Y aquí está el código para ese elemento.

 {movies && <div id="film-row"> <FilmCard img={`${base_url}${movies[0].poster_path}`} /> <FilmCard img={`${base_url}${movies[1].poster_path}`} /> <FilmCard img={`${base_url}${movies[2].poster_path}`} /> <FilmCard img={`${base_url}${movies[3].poster_path}`} /> <FilmCard img={`${base_url}${movies[4].poster_path}`} /> <FilmCard img={`${base_url}${movies[5].poster_path}`} /> </div> }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

agregar un ? a tus etiquetas como esta

 <FilmCard img={`${base_url}${movies?.[0]?.poster_path}`} />

o cambie su representación condicional a:

{películas.duración &&

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede ser difícil recordar qué valores son forzados a verdadero o falso por JavaScript. En este caso, una matriz vacía ([]) es en realidad un valor "veraz" ( consulte MDN para ver ejemplos ), por lo que sus elementos de FilmCard se procesarán de forma no deseada.

O cambia tu condicional para dar cuenta de esto:

 {movies.length &&

O inicialice movies como un valor "falso":

 const [movies, setMovies] = useState(null)
about 4 years ago · Juan Pablo Isaza Relatório

0

Obtengo datos como este:

 useEffect(()=>{ (async () => { const request = await axios.get(fetchUrl); setMovies(request.data.results); })() },[fetchUrl])

Y debe verificar si las películas no son nulas. en el regreso agregar

 {movies.length > 0 && // What you want to do with movies.}
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