我知道如何讓父函數在onClick事件(或類似的事件)上觸發時運行,但我想在ajax成功時觸發它。因此,相當多這樣constallation:在ajax上觸發父函數reactjs
var parent = React.createClass({
someFunction: function(){
console.log("Parent function triggered");
},
render: function(){
return (
<Child callback={this.someFunction} />
);
}
});
var child = React.createClass({
getInitialState: function(){
return { data: "Wat" };
},
componentDidMount: function(){
$.ajax({
url: "some_url",
method: 'POST',
data: this.state.data,
success: function(response){
this.props.callback; // This is what I would like to do
},
error: function(){
console.log("Couldn't do it cap'n");
}
});
},
render: function(){
return(
<div>Hello!</div>
);
}
});
我可以觸發事件做到這一點,但肯定應該能夠做到這一點,當我訪問該功能。該功能也被傳遞下來正確的,我可以把它看作一個函數,如果我做了console.log(this.props.callback);
你有什麼完成是非常正確的。您只需要以這種方式執行該函數 - this.props.callback()。更改函數的this關鍵字,或者直接聲明var that = this,並調用that.props.callback() – booleanhunter