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

544
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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