2017-03-03 5 views
0

Ich möchte die Liste der Elemente ausblenden/anzeigen, wenn ich auf die Schaltfläche klicke, aber sie wird sie nicht verstecken und console.log von "sollHide" ist gleich undefiniert.hide/show klickt auf ein anderes div

Funktion

showHideToggle(){ 
    this.setState({shouldHide: true}); 
} 


    const { shouldHide} = this.props; 

Div Ich möchte

 <div className={shouldHide ? 'hidden' : ''} > 
     <WeatherInfo /> 
    </div>; 

dies das div verbergen ist, die von einem getrennten Ich versuche

<div onClick={(e) => {this.List(e);this.showHideToggle}}></div> 

Konstruktor

zu verstecken
this.state = { 
    shouldHide: true 
}; 
+0

Sind Sie sicher, dass Sie nicht versuchen, 'const {sollteHide} = this.state;' statt? –

+0

immer noch undefiniert, auch wenn ich this.state setzen – OunknownO

+0

haben Sie den Status in Ihrem 'Konstruktor' definiert? Vielleicht zeige das auch –

Antwort

1

Ihr Konstruktor sollte wie folgt aussehen:

constructor(props) { 
    super(props); 
    this.state = { shouldHide: true }; 
    } 

und Ihre showhide sollte dies wahrscheinlich tun, anstatt sonst wird es nicht wechseln und wird immer wahr sein

showHideToggle(){ 
    this.setState({shouldHide: this.state.shouldHide ? false : true}); 
} 

const { shouldHide} = this.props;const { shouldHide} = this.state sein sollte in Ihrem machen Bereich

aber <div className={this.state.shouldHide ? 'hidden' : ''} > sollte auch funktionieren, da es in der richtigen Gegend ist.

+0

cool es versteckt es. Jetzt zum Entfernen der Klasse tun Sie das Gegenteil? – OunknownO

+0

Wenn Sie es erneut anklicken, sollte es entfernt werden, obwohl ich falsch liegen könnte: X Aber ja, entfernen Sie einfach die Klasse, wenn das so funktioniert –

+0

nein es entfernt es jetzt nicht um Klasse zu entfernen Ich muss es überarbeiten? – OunknownO

Verwandte Themen