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

93
Views
¿Cómo manipular conjuntos de botones en React con UseStates?

Hola, soy nuevo en reaccionar y trato de hacer que los botones se iluminen cuando los presiona, sin embargo, están en conjuntos de botones y me gustaría que los otros botones del conjunto no se iluminen también cuando se presiona uno.

Actualmente utilicé UseState() y simplemente activa y desactiva todos los botones. ¿Cuál es la mejor práctica para solucionar esto? Porque crear 30 funciones de botones individuales no parece práctico. Botones

 const [ticket, setTicket]=useState(false) const ticketHandler = () => { setTicket (!ticket); }
 <button onClick={ticketHandler} className={`${ticket? 'is-success': ''} button`}>1-5</button> <button onClick={ticketHandler} className={`${ticket? 'is-success': ''} button`}>6-9</button>

en este ejemplo, tanto el ticket '1-5' como el ticket '6-9' se iluminan en verde

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Debe crear un componente de Button separado y mantener la lógica de iluminación en él. Eso resolverá tu problema.

 const Button = ({ buttonText }) => { const [ticket, setTicket] = useState(false); const ticketHandler = () => { setTicket(!ticket); }; return ( <button onClick={ticketHandler} className={`${ticket ? "is-success" : ""} button`} > {buttonText} </button> ); };

Y crea botones como este:

 <Button buttonText="1-5"/> <Button buttonText="6-9"/>
about 4 years ago · Juan Pablo Isaza Report

0

Solo necesita almacenar un valor que podría usar en el estado (utilicé '1-5') y luego verifique eso.

 function RadioButtonGroup() { const [active, setActive] = useState(''); const handleClick = (value) => () => { setActive(value); }; return ( <div> <button className={`${active === '1-5' ? 'is-active' : ''}`} onClick={handleClick('1-5')} > 1-5 </button> <button className={`${active === '6-9' ? 'is-active' : ''}`} onClick={handleClick('6-9')} > 6-9 </button> </div> ); }
about 4 years ago · Juan Pablo Isaza Report

0

Sugeriría dar un valor a su botón y pasarlo a su controlador.

Y asigne el valor al ticket en lugar de hacer que el ticket sea booleano

Asi que,

 const ticketHandler = (element) => { setTicket(element.value); }; const getClass = (condition) => ticket === condition ? 'is-success': ''

Botón:

 <button onClick={ticketHandler} value ="oneToFive" className={`${getClass("oneToFive")} button`}>1-5</button> <button onClick={ticketHandler} value="sixToNine" className={`${getClass("sixToNine")} button`}>6-9</button>
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!