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

155
Visualizações
TypeError: no se pueden leer las propiedades de undefined (leyendo 'mapa') Parece que no se puede encontrar un problema con la función

Esto es lo que veo en mi localhost

Aquí está mi código

 import React, { useState, useEffect } from 'react' import axios from './axios' import './Row.css' const base_url = "https://image.tmdb.org/t/p/original/" function Row({ title, fetchUrl }) { const [movies, setMovies] = useState([]); useEffect(() => { async function fetchData(){ const request = await axios.get(fetchUrl); setMovies(request.data.results); return request; } fetchData(); }, [fetchUrl]) // console.log(movies) return ( <div> <div className="row"> <h2>{title}</h2> <div className="row__posters"> {movies.map(movie => (<img src={`${base_url}${movie.poster_path}`} alt={movie.name} />) )} </div> </div> </div> ) } export default Row

Parece que no puedo encontrar el problema con la función porque los resultados en los datos que solicito de la API ciertamente no están indefinidos.

Editar

Como referencia, también agregué mi consola aquí para que pueda ver que devuelve la solicitud en el registro, pero el error persiste.

Error en la vista de consola

Puedo verlo funcionando por un segundo cuando vuelvo a cargar la página y boom, se ha ido y el error aparece.

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

0

Ha indefinido en su consola dos veces después de mostrar el contenido de la solicitud.

También debe colocar un archivo console.log justo después (o antes) de la línea

 const request = await axios.get(fetchUrl);

useEffect() se llama después de ejecutar el primer render(), por lo que seguramente comenzará con un valor nulo. Y la línea movies.map(...) falla.

Agrega una línea antes de tu devolución() con este código:

 console.log("movies: ", movies) if( !movies ) return (<span>loading...</span>) //... return dom content

Es posible que vea (si la respuesta de su servidor es lo suficientemente lenta) el mensaje de la pantalla 'cargando...' antes de llegar a la pantalla de datos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Intente usar el operador de encadenamiento opcional (?.) y vea qué sucede.

Quería escribir esto como un comentario, pero no tengo suficiente reputación.

about 4 years ago · Juan Pablo Isaza Relatório

0

Este tipo de error ocurre cuando accede a una propiedad de un objeto que también está indefinido. Como este ejemplo let val = undefined; val.map(v => console.log()) esto devolverá el mismo error que obtienes. Aquí voy a mapear una variable cuyo valor no está definido. De manera similar, de alguna manera, sus películas se asignaron sin definir y luego buscar el mapa devuelve ese error. Por lo tanto, parece que no está asignando correctamente el objeto de respuesta a las películas, está asignando un valor indefinido a las películas, así que verifique los resultados antes de asignarlo a las películas.

 const request = await axios.get(fetchUrl); if(request.data && request.data.results){ setMovies(request.data.results); }

asegúrese de que request.data.results sea una lista de objetos no indefinidos y verifique que sus películas no tengan valores falsos antes de aplicarle la operación de mapa para evitar errores

 {movies? movies.map(): `<p>Loading</p>}

Puede verificar request.data consolando console.log(request.data) si devuelve una lista de objetos, luego intente setMovies(request.data) . Siga este blog TypeError no detectado: no se puede leer la propiedad de undefined En JavaScript React: no se puede leer la propiedad 'mapa' de undefined

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