Ich habe zwei Komponenten: geordnete Komponente aus dem ich Kind will Komponente Zustand ändern:React js Zustand Kind Komponente von Elternkomponente ändern
class ParentComponent extends Component {
toggleChildMenu() {
?????????
}
render() {
return (
<div>
<button onClick={toggleChildMenu.bind(this)}>
Toggle Menu from Parent
</button>
<ChildComponent />
</div>
);
}
}
Und Kind Component:
class ChildComponent extends Component {
constructor(props) {
super(props);
this.state = {
open: false;
}
}
toggleMenu() {
this.setState({
open: !this.state.open
});
}
render() {
return (
<Drawer open={this.state.open}/>
);
}
}
Ich muss entweder ändern der untergeordneten Komponente öffnen Staat von übergeordneten Komponente, oder rufen Child Componen t's toggleMenu() von Eltern-Komponente, wenn Button in der übergeordneten Komponente angeklickt wird?
Kann das eine CSS-Eigenschaft wie 'display' zur Steuerung verwendet werden? Wie in, wenn meine Prop 'open' entweder 'none' oder 'inline-block' enthält, wird die css display prop aktualisiert? – deusofnull
Ja, versuchen Sie es, es sollte funktionieren –
Ich endete mit dem react-Klassennamen-Paket stattdessen und verwendet die 'Anzeige' Prop als Boolean für, ob eine 'versteckte' Klasse zu dem Element hinzufügen oder nicht. Es war einfacher und mein Entwickler hat es über meine Methode empfohlen. Danke für die Antwort! – deusofnull