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

333
Vistas
Obtener atributos de datos con React.js

¿Por qué tengo que poner data-* en cada html child attribute para que no quede undefined al hacer clic en el parent ? Es decir

 <li data-item="item-1"> <img src="../img" alt="img" /> <p>Some text</p> </li>

Con este ejemplo, obtendré item-1 cada vez que haga clic cerca de los bordes de <li> pero cada vez que haga clic en img o text/paragraph obtengo undefined . Pero cuando configuro data-item en <li> childs, obtengo un valor data normal. ¿Qué?

PD. La forma en que obtengo data-* es, por ejemplo

 handleClick(event){ let data = event.target.dataset['item'] } ... <li data-item="item-1" onClick={this.handleClick.bind(this)}>...</li>

¿Qué estoy haciendo mal, que tengo que poner en cada <li> data-* para que no quede indefinido en todo el bloque <li> on<Event> ?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

FYI, el problema no tiene nada que ver con React. Así es como funcionan los eventos DOM en los navegadores. Eche un vistazo a este artículo de quirksmode.org para obtener más información sobre cómo funciona la propagación de eventos.

event.target siempre se referirá al elemento en el que se activó el evento. Entonces, si hace clic en el elemento <p> , event.target se referirá a ese elemento. Dado que <p> no tiene un atributo data-* , obtienes undefined .

Para obtener siempre el elemento al que está vinculado el controlador (es decir, el elemento <li> en su ejemplo), use event.currentTarget en su lugar.

over 4 years ago · Santiago Trujillo 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