Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

147
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!