Saltar al contenido

Cambiar el estilo de un botón al hacer clic

Solución:

Puede intentar usar el estado para almacenar el color. Tal vez esto le dé la idea de cómo resolver el problema:

class Test extends React.Component {
    constructor(){
        super();

        this.state = {
           black: true
        }
    }

    changeColor(){
       this.setState({black: !this.state.black})
    }

    render(){
        let btn_class = this.state.black ? "blackButton" : "whiteButton";

        return (
             <button className={btn_class} onClick={this.changeColor.bind(this)}>
                  Button
             </button>
        )
    }
}

React.render(<Test />, document.getElementById('container'));

Aquí hay un violín.

También tienes acceso al evento y al objetivo actual del evento.

handleClick = (event) => {
   // accessible
   event.target.style
   event.target.classList //to change style via css
}

Aqui hay otra solucion

changeStyles = () => {
    let element = document.getElementById('button')
    ReactDOM.findDOMNode(element).style.backgroundColor = this.state.isClicked?'black' : 'white'
}

De esta manera, puede cambiar solo la propiedad de estilo necesaria para evitar duplicados en CSS.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *