Я использую реакцию для проекта, где у меня есть кнопка меню.
<a ref="btn" href="#" className="btn-menu show-on-small"><i></i></a>
И компонент Sidenav, например:
<Sidenav ref="menu" />
И я написал следующий код для переключения меню:
class Header extends React.Component {
constructor(props){
super(props);
this.toggleSidenav = this.toggleSidenav.bind(this);
}
render() {
return (
<div className="header">
<i className="border hide-on-small-and-down"></i>
<div className="container">
<a ref="btn" href="#" className="btn-menu show-on-small"><i></i></a>
<Menu className="menu hide-on-small-and-down"/>
<Sidenav />
</div>
</div>
)
}
toggleSidenav() {
this.refs.btn.classList.toggle('btn-menu-open');
}
componentDidMount() {
this.refs.btn.addEventListener('click', this.toggleSidenav);
}
componentWillUnmount() {
this.refs.btn.removeEventListener('click', this.toggleSidenav);
}
}
Дело в том, что this.refs.sidenav
не является элементом DOM, и я не могу добавить на него класс.
Может кто-нибудь объяснить мне, как переключать класс на компонент Sidenav
, как на моей кнопке?