我有一個觸發器應該改變其子組件的狀態。兩個呈現語句的結果都是無關緊要的。我唯一擔心的是,我不確定如何使用trigger
觸發器調用leftbehind
函數,而不將leftbehind
放在其父渲染器Another
中。在React中調用多個函數,一個內部和另一個組件外?
我的代碼如下。目標是讓leftbehind
運行而不必將其放入渲染器中。
var Another = React.createClass({
leftbehind: function() {
if (this.props.status === "dare") {
alert('Winning!');
}
},
render: function() {
if (this.props.status === "truth") {
return (<p>Yes</p>);
} else {
return (<p>Nope</p>);
}
}
});
var App = React.createClass({
getInitialState:function() {
return {deesfault: "truth"};
},
trigger: function() {
this.setState({deesfault: "dare"});
},
render: function() {
return (
<div>
<p onClick={this.trigger}>{this.state.deesfault}</p>
<Another status={this.state.deesfault}/>
</div>
);
}
});
的原因,我不希望把leftbehind
裏面的渲染,是因爲它在技術上應該採取的API調用的地方。我不希望在渲染函數中調用它。