Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda