Ich habe eine Menü-Box in meiner Reaktion App und ich zeige, wenn ich auf Menü-Taste anzeigen und ausblenden, wenn Menü geöffnet ist. Ich möchte Menü auszublenden, wenn ich außerhalb des Menüs klickenEvent.Target nimmt reagieren Kind Komponenten separat
class MenuButton extends Component {
constructor (props) {
super (props)
this.state = {showMenu: false}
this.toggleMenu = this.toggleMenu.bind(this)
}
toggleMenu() {
let showMenu = !this.state.showMenu
this.setState({showMenu})
}
componentDidMount() {
window.addEventListner('click', e => {
if (e.target !== document.getElementById('menu-div') {
this.setState({showMenu: false})
}
})
}
render() {} {
return (
<div>
<button onClick={this.toggleMenu}>Menu</button>
{this.state.showMenu ? <div id='menu-div><Menu /></div> : null}
</div>
)
}
}
und mein Menü Component viele Kind-Komponenten
const Menu =() => {
return (
<div>
<Component1/>
<Component2/>
<Component3/>
</div>
)
}
aber einen Klick auf diesen untergeordneten Komponenten schließen mein Menü als event.target hat schenkt anderen Knoten
das ist nett, ich werde meinen Code zu diesem –
aktualisieren @RishabhMishra Bitte akzeptieren Sie diese Antwort anstelle von mir. –