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

144
Views
En React, cómo agregar clase al botón al hacer clic

Soy novato en Reactjs. ¿Cómo agregar clase al botón cuando se hace clic? También se deben eliminar otras clases de botones.

Esto es lo que probé hasta ahora. Por favor ayuda.

 import React, { useState } from "react"; export default function App() { const [isActive, setActive] = useState("false"); const handleToggle = () => { setActive(!isActive); }; return ( <div > <button onClick={handleToggle} className={isActive ? "active" : null}>Sunday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Monday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Tuesday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Wedsday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Thursday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Friday</button> <button onClick={handleToggle} className={isActive ? "active" : null}>Saturday</button> </div> ); }
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Suponiendo que tiene un archivo src/index.css que contiene la clase css requerida... su secuencia de comandos actual asignará la clase "activa" a todos los botones a la vez. Para aplicar la clase a un solo botón, debe tener un objeto en un estado como este:

 const [daysActive, setDaysActive] = useState({ monday: false, tuesday: false... });

y en su método de alternar pasará la clave del día como tal:

 const handleToggle = (day) => { setDaysActive({ ...daysActive, [day]: !daysActive[day] }); }

entonces un botón jsx llamará a este controlador con su respectiva clave de día

 <button onClick={() => handleToggle("sunday")} className={daysActive["sunday"] ? "active" : null}>Sunday</button>

si desea que este conjunto de botones sea más limpio, puede usar la función de mapa

 const days = ["sunday", "monday", ...]; <div> {days.map((day) => ( <button ... /> ))} </div>
about 4 years ago · Juan Pablo Isaza Report

0

Una forma de hacer esto es usar un mapa de matriz con un índice como este:

 import React, { useState } from "react"; export default function App() { const days = ['Monday', 'Tuesday', ... ] const [activeIndex, setActiveIndex] = useState(-1); const handleToggle = (index) => { setActiveIndex(index); }; return ( <div > {days.map((day, index) => ( <button onClick={()=> handleToggle(index)} className={activeIndex === index ? "active" : null}>{day}</button> ) </div> ); }
about 4 years ago · Juan Pablo Isaza Report

0

Puede extraer sus accesorios de botones a una función si el marcado se vuelve un poco largo.

 export default function App() { const [chosen, choose] = React.useState(); const makeProps = (name) => ({ onClick: () => choose(name), className: chosen === name ? 'active' : null }) return ( <div className="App"> <button {...makeProps('one')}>one</button> <button {...makeProps('two')}>two</button> <button {...makeProps('duck')}>duck</button> </div> ); }

O encapsule todo el comportamiento en su propio componente 'ButtonThatCanBeActive' que toma un accesorio "activo" y "onClick".

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!