2017-06-17 4 views
0

Ich habe ein Popup, das ein-/ausschaltet, wenn ich den Mauszeiger über/lasse eine Taste, momentan ist es in meinen Requisiten auf false gesetzt, ich möchte es auf true setzen Wenn also die Ladeseiten angezeigt werden, erscheint das Popup-Fenster, aber wenn der Benutzer darüber schwebt, wird der Status wieder auf "False" zurückgesetzt, sodass ich den Cursor erneut über den Bildschirm bewegen kann. Aber ich kann es nicht herausfinden.Wie man einen Komponentenstatus bei einem Mausereignis löscht React JS

<!-- language: lang-js --> 

Class App extends Component { 

constructor(props) { 
    super(props); 

    this.state = { isHovered: false }; 
    this.handleHover = this.handleHover.bind(this); 

} 

handleHover(){ 
    this.setState({ 
     isHovered: !this.state.isHovered 
    }); 
} 

render() { 

const box = this.state.isHovered ? "box open" : "box"; 

return(

<a className="spot1" onMouseEnter={this.handleHover} onMouseLeave={this.handleHover}> 
</a> 

<div className={box}> 
    <p>Lorem ipsum dolor si</p> 
</div> 

) 

Antwort

1

Ich glaube, Sie brauchen eine zweite Variable, um zu überprüfen, ob Ihre Komponente zum ersten Mal geladen/gerendert wurde, Unten finden Sie ein einfaches Beispiel.

+0

habe es gerade versucht, aber ich habe nur zurück zu Klasse hinzufügen und entfernen, wenn ich den Mauszeiger darüber, aber nicht laden, wenn es lädt zuerst –

+0

Ich glaube, Sie machen einen Fehler oder etwas, weil es funktioniert, schauen Sie bitte https: // jsbin .com/pazesovose/edit? js, Konsole, Ausgabe – AngelSalazar

+0

du bist der Mann Angel! Vielen Dank! –

0

Sie haben die Herstellung von was Sie wollen, es ist noch nicht richtig angeschlossen.

Zuerst setzen Sie Ihre isHovered: true, so dass das Popup beim Laden der Seite erscheint.

Als nächstes ändern Sie die Funktion onMouseEnter und onMouseLeave-this.handleHover, das ist alles, was Sie tun sollen, müssen.

+0

Ich habe es bereits auf True eingestellt, aber wenn ich über und davon schwebe, bleibt pop up, bis ich darüber schwebe, das Gegenteil von dem, was ich will, nachdem ich darüber schweben. –

Verwandte Themen