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

640
Vistas
¿Cómo se obtiene texto de la etiqueta span en React (onClick)?

Soy nuevo en React, pero no en programación. En el siguiente código, desc nunca cambia de estado, y creo que esto se debe a que la etiqueta no es completamente compatible con el valor y el controlador de evento/atributo onChange que estoy tratando de usar con él.

Lo que intento hacer es obtener la información de texto de la etiqueta span cuando presiona el botón className='submit'. Vi algunos videos en los que la gente sugería el método que tengo implementado ahora, donde constantemente actualizas el estado en Cambiar, sin embargo, esto me parece tonto y si hay una mejor manera en la que obtienes el texto solo en Hacer clic una vez en lugar de actualizar constantemente, por favor deja yo sé.

Además, estoy usando un lapso con el atributo contentEditable debido a razones de estilo CSS, quiero un cuadro sin bordes que se expanda y el contenedor esté adentro en lugar de que el texto salga de la página a la derecha. Adjunto una captura de pantalla de lo que quiero decir.

Captura de pantalla de la tarjeta

 const [title, setTitle] = useState(''); const [desc, setDesc] = useState(''); return ( <div className='card-container'> <div className='card'> <h1 className='card-title'> <input className='titletext' value={title} onChange={e => setTitle(e.currentTarget.value)} placeholder='Who do you need?'></input> </h1> <p className='card-desc'> <span className='textarea' value={desc} onChange={e => setDesc(e.currentTarget.value)} contentEditable></span> </p> <button className='submit' onClick={event => { /* Add job to the database (async) Add new card with information submitted in the list right below */ event.preventDefault(); console.log(title); console.log(desc); }}></button> </div> </div> ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

así que descubrí cuál era el problema. onChange no funciona con etiquetas de intervalo, incluso en Vanilla JS. La solución fue cambiar onChange a onInput y usar e.currentTarget.innerText

Gracias a Suhag Lapani88 por reducirlo, aunque ofreció lo que pensé que sería una solución con useRef, porque pensé que estaba usando useRef de forma incorrecta.

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