Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

551
Vistas
Rechazo no controlado (TypeError): no se pueden leer las propiedades de undefined (leyendo 'parámetros')

Recibo un error al mostrar un solo producto en la pantalla, el error se indica como-

 Unhandled Rejection (TypeError): Cannot read properties of undefined (reading 'params')

El código que está causando el error es

 function ProductScreen({ match }) { const [product, setProduct] = useState({}) useEffect(() => { const fetchProduct = async () => { const { data } = await axios.get(`/api/products/${match.params.id}`) setProduct(data) } fetchProduct() }, [match])

Supongo que el error es de match.params.id, pero estoy teniendo dificultades para resolver el error. ¿Alguien puede saber la solución a este error?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Pasaste props a ProductScreen pero props.match no está definido.
Intente darle a props.match un valor no vacío, entonces debería funcionar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Luego use otras formas como useNavigate hook para acceder al historial y navegar. Consulte el documento oficial . v6.0.2 no pasa accesorios de historial y en match.params.id , la match no está undefined y es por eso que recibe este error cuando intenta acceder a match.params como undefined no puede tener una propiedad.

Tienes que manejarlo de otra manera.


El código anterior muestra el error: "'datos' no están definidos.eslintno-undef" y "'datos' se declaran pero su valor nunca se lee.ts(6133)"

Está recibiendo este error porque const tiene block scoped

 if (match) { const { data } = await axios.get(`/api/products/${match.params.id}`) } setProduct(data)

Las constantes tienen un alcance de bloque, al igual que las variables declaradas con la palabra clave let. El valor de una constante no se puede cambiar a través de la reasignación (es decir, usando el operador de asignación) y no se puede volver a declarar (es decir, a través de una declaración de variable).

Puedes manejarlo por,

 let data; if (match) { ({ data } = await axios.get(`/api/products/${match.params.id}`)) } setProduct(data)

Sugeriría que pueda revisar los conceptos básicos para una mejor comprensión.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda