Así que encontré dos formas de cambiar dinámicamente el nombre de clase del componente de reacción. Pero, ¿cuál es el mejor y más eficiente?
Usando referencia:
class Header extends React.Component{ dropdownRef = React.createRef() handleDropdown = () =>{ this.dropDownRef.current.classList.toggle('open') }; render(){ return( <header> <div ref={this.dropdownRef} className="dropdown"> Hello </div> <button onClick={this.handleDropdown}>Click Me!</button> </header>) } }Estado de uso:
class Header extends React.Component{ state = {isOpen : false } handleDropdown = () =>{ this.setState(prev=>({ isOpen: !prevState.isOpen })) }; render(){ return( <header> <div className={`dropdown ${this.state.isOpen ? "open" : ""}`}> Hello </div> <button onClick={this.handleDropdown}>Click Me!</button> </header>) } }Entonces, ¿cuál es la mejor manera de cambiar la clase o hacer cosas similares?
En la documentación de reacción, se dice que no se deben usar en exceso las referencias de reacción , por lo que creo que usar el estado sería mejor.