子コンポーネントの状態を変更するはずのトリガーがあります。両方のレンダリングステートメントの結果は重要ではありません。私の唯一の懸念は、leftbehind
をその親レンダラーAnother
に入れないでleftbehind
関数を呼び出すためにtrigger
トリガーを使用する方法がわかりません。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>
);
}
});
技術的にAPI呼び出しの場所を取ることになっているので、私は、レンダリングの内側leftbehind
を配置したくない理由は、あります。レンダリング関数の中で呼び出されることは望ましくありません。