Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

644
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!