Ich kann nicht die Elternkomponente aus der Kindkomponente neu übergeben - ich übergebe componentDidMount
als Requisiten an Kindklasse, dann rufe ich es dort an und erwarte, dass das Elternteil neu zu rendern. Die Renderfunktion wird aufgerufen, der Inhalt bleibt jedoch unverändert. Was ist los mit dir?Elternkomponente von Kindkomponente aktualisieren
var Parent = React.createClass({
getInitialState: function() { return {content: 'clean'}; },
componentDidMount: function() {
this.setState({content: 'changed!'});
},
render: function() {
return React.createElement('div', {rerender: this.componentDidMount.bind(this)}, this.state.content);
}
});
var Child = React.createClass({
render: function() {
return React.createElement('div', {onClick: this.handleClick}, 'click me');
},
handleClick: function() {
this.props.rerender();
}
});
ReactDOM.render(
React.createElement(ReactRouter.Router, {history: ReactRouter.browserHistory},
React.createElement(ReactRouter.Route, {path: '/parent', component: Parent})
)
, document.getElementById('content'));
Senden Sie eine Klassenmethode als prop Callback an die untergeordnete Komponente, der Callback muss 'setState' in der übergeordneten Komponente –
Aber das ist genau das, was ich in meinem Beispiel – user99999
nicht die' this.componentDidMount' als Event Callback verwendet habe :) Sie sollten eine eigene Funktion erstellen, um diesen 'rerder' in der Elternkomponente zu behandeln .. und natürlich wird es keinen Zufall geben, wenn die Elternkomponente mount den Zustand' content: changed' hat und wenn Sie mit click umgehen, wird sie aufgerufen die gleiche Funktion, so wird der Zustand gleich sein. – Hardy