我無法從子組件中重新提交父組件 - 我將componentDidMount
作爲道具傳遞給子類,然後在那裏調用它,並期望父級重新提交。渲染函數被調用,但內容保持不變。怎麼了?從子組件中更新父組件
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'));
發送一個類方法作爲道具回調到子組件,該回調需要在父組件中設置'setState' –
但是,這是exacly我在我的例子 – user99999
做的事情不要使用'this.componentDidMount'作爲事件回調:)你應該創建自己的函數來處理在父組件中的'rerender .. ..當然,它不會有機會,因爲當父組件掛載狀態將是'content:changed!',當你處理點擊它會調用相同的功能,所以狀態將是相同的。 – Hardy