Je suis nouveau à réagir. Essayer de comprendre comment lier un événement click et le faire basculer d'une classe à deux endroits. Comment puis-je y parvenir?Cliquez sur "menu hamburger" et ouvrez un nav latéral dans React?
Voici ce que j'ai fait jusqu'ici.
Le nav:
import React from 'react';
import { css } from 'glamor';
import { container } from '../contents/grid'
export default class Navigation extends React.Component {
constructor(props) {
super(props);
this.state = { isToggled: true };
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggled: !prevState.isToggled
}));
}
showHeader() {
this.refs.navigation.show();
}
render() {
return (
<nav className={nav} {...container}>
<ul {...hamburger} className={this.state.isToggled ? "" : "active"} onClick={this.handleClick}>
<li>
</li>
</ul>
</nav>
)
}
}
Et le menu latéral/tête:
import React from 'react';
import { Link } from 'react-router-dom';
import { css } from 'glamor';
import { header, nav, navUL } from '../contents/navigation';
export default class Header extends React.Component {
constructor(props) {
super(props);
}
show() {
this.setState({
isToggled: true
});
}
render() {
return (
<header {...header}>
<nav {...nav}>
<ul {...navUL} className={styleUl}>
<li>
<Link to='/'>Robin Savemark</Link>
</li>
<li>
<Link to='/experience'>Erfarenhet</Link>
</li>
<li>
<Link to='/education'>Utbildning</Link>
</li>
<li>
<Link to='/project'>Projekt</Link>
</li>
<li>
<Link to='/knowledge'>Kunskaper</Link>
</li>
<li>
<Link to='/contact'>Kontakt</Link>
</li>
</ul>
</nav>
</header>
)
}
}
Et l'App où je rends que chaque composant:
import React from 'react';
import Navigation from './Navigation';
import Header from './Header';
import Main from './Main';
export default class App extends React.Component {
render() {
return (
<div>
<Navigation />
<Header ref="Navigation" />
<Main />
</div>
)
}
}
Comment puis-je dire à mon "handleClick" méthode pour "bascule" le menu hamburger et le menu en-tête/side-menu? Parce que le handleClick est à l'intérieur d'une autre portée (Navigation) et je ne veux pas faire la même chose dans la classe Header.