Ich verstehe, wie ein Click-Ereignis von einer übergeordneten Komponente an eine untergeordnete Komponente in React übergeben, aber nicht verstehen, wie ich es von einem Großeltern zu einem Enkelkind ohne zu machen übergeben kann die Eltern anklickbar.Übergabe Event Handler von Grandparent zu GrandChild Component in Reactjs
Im folgenden Beispiel möchte ich, dass das Eltern-Div beim Klicken auf das Enkel-Div schließt.
Hier ist mein Code, der nicht funktioniert. Danke!
var Grandparent = React.createClass({
getInitialState: function() {
return {open: true};
},
close: function() {
this.setState({open: false});
},
render() {
var grandparentBox={backgroundColor: 'yellow', height: 400, width: 400};
return <div style = {grandparentBox}><Parent open={this.state.open} close = {this.close}/></div>;
}
});
var Parent = React.createClass({
render() {
var parentBox={backgroundColor: 'red', height: 100, width: 100};
if (this.props.open == true) {
return <div close={this.props.close} style = {parentBox}><Grandchild/></div>
}
else {
return null;
}
}
});
var Grandchild = React.createClass({
render() {
var grandchildBox={backgroundColor: 'black', height: 20, width: 20, top: 0};
return <div onClick={this.props.close} style = {grandchildBox}></div>
}
});
ReactDOM.render(
<Grandparent/>,
document.getElementById('container')
);
Vielen Dank! Aber wenn ich Grandchild die Close-Methode überlasse, macht es nichts mit onClick. –
Ich bin mir nicht sicher, was genau Sie suchen, aber das Klicken auf das Enkelkind schließt sowohl das Enkelkind als auch das Elternteil in dieser [Geige] (https://jsfiddle.net/chadlieberman/55htLpgL/). –
Vielen Dank Tschad, das Problem ist, dass ich NUR das Enkelkind in der Lage sein soll, mit Klicks umzugehen. Wenn Sie auf den Eltern klicken, sollte er nicht geschlossen werden, aber wenn Sie auf den Enkel klicken, sollten beide schließen. –