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

154
Vistas
TypeError: no se pueden leer las propiedades de undefined (leyendo 'setPopup')

Estoy tratando de crear mi proyecto en React. Esta parte del proyecto consiste en una lista de elementos, cada uno tiene un botón X para eliminar ese elemento. Cada elemento es un componente de mi aplicación de reacción. Cuando se presiona el botón, configuro una variable (pasada a través de useContext) llamada setPopup, por lo que aparece una ventana emergente que le pregunta si está seguro de que desea eliminar el archivo. El problema es que cuando hago clic en el archivo, aparece este error:

 TypeError: Cannot read properties of undefined (reading 'setPopup')

Este es el código del componente:

 import '../styles/styleF.css'; import {PopupContest} from './HomePage'; import { useContext } from 'react'; const SFile = (n) => { const v = useContext(PopupContest); let currentImg = c; return <> <div className="fileSingle"> <img src={currentImg} alt="img" style={{'height':'50px', 'width':'50px','position':'relative', 'top':'5', 'left':'0'}} /> <h3>{n.name + "." + n.img}</h3> <button style={{'height':'50%', 'marginTop':'10px'}} onClick={() => {v.setPopup(6); v.setSelectFile(n.ident + "")}}>X</button> </div> </> } export default SFile;

Me gustaría saber por qué sucede esto y cómo solucionarlo correctamente. El código que efectivamente elimina el archivo está en otro archivo y componente, y funciona. Leí en algunas respuestas que debería verificar si no está definido, pero para hacer la condición de verificación, el código se rompe de todos modos. Entonces, no sé cómo manejarlo. ¿Alguien puede ayudar? Muchas gracias

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

0

El contexto de PopupContest debe tener un proveedor y este proveedor debe estar envuelto en un componente principal (cualquier nivel) del componente SFile . Luego puede usar el consumidor de PopupContest en el componente SFile .

Algo como esto:

 import {Provider as PopupContestProvider} from './HomePage'; return ( <PopupContestProvider> <SFile /> </PopupContestProvider> );
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