Ich fing gerade an zu plattieren mit reagieren. Ich arbeite gerade an meiner navBar mit Material-Ui und reagiere. Wenn ich den Mauszeiger über das Menü bewege, wird das Drop-down-Menü angezeigt. Um das Drop-Down-Menü zu schließen, muss ich jedoch auf die Außenseite des Dropdown-Menüs klicken. Ich möchte das Dropdown-Menü schließen können, wenn ich die Dropdown-Liste verlassen oder zu der anderen Menüoption wechseln (in diesem Fall sollte ein anderes Dropdown-Menü angezeigt werden). Etwas wie dieses: https://www.palantir.com/Menü bei mouseover öffnen und Menü auf mouseleave in react schließen
Ich sah mich um, aber ich fand die Lösung nicht. Das war das nächste, das ich bekam: Material-ui: open menu by event hover
Ich versuchte mit der gleichen Technik und fügte dies zu meinem Code, aber ohne Erfolg. Irgendwelche Vorschläge? Vielen Dank!
Bearbeitungen: Ich habe mein Problem hier neu erstellt: https://react-xmaiyw.stackblitz.io Das Problem kann gesehen werden, wenn Sie auf "Warum uns" geklickt haben.
handleClick = (event) => {
event.preventDefault();
this.setState({
open: true,
anchorEl: event.currentTarget,
});
};
handleRequestClose =() => {
this.setState({
open: false,
});
};
render() {
return (
<FlatButton
onClick={this.handleClick}
onMouseOver={this.handleClick}
onMouseLeave={this.handleRequestClose} //When I add this line of
//code, it keeps flickering very fast almost as if drop-down
//doesn't open
label="Why Us?"
/>
)}
Ich weiß nicht, ob dies die Antwort ist, die Sie suchen, da Sie bereits eine Menge Javascript geschrieben haben, aber dies kann ganz einfach ohne Javascript mit dem CSS-Pseudoelement 'Hover' gemacht werden. W3Schools hat ein hervorragendes Tutorial, wie man das in einer Dropdown-Menü-Einstellung [hier] implementiert (https://www.w3schools.com/howto/howto_css_dropdown.asp "Dropdown-Menü") Wenn dies nicht der Effekt ist, den Sie gesucht haben Bitte fügen Sie Ihr Markup hinzu, damit wir besser sehen können, wofür Sie sich entscheiden. –
Ich versuche, es mit js im Vergleich zu CSS arbeiten zu lassen. Ich habe meine ursprüngliche Frage bearbeitet und einen funktionierenden Link zu meinem Problem hinzugefügt. Vielen Dank :) – abidishajia