Facebookの反応例hereを見ると、ミックスインを使ってインターバルを設定する方法を示すこのコードが見つかりました。私はthis.intervals
で起こっていることについて混乱しています。状態がレンダリング変更データを保持し、親コンポーネントが親コンポーネントから渡されたデータを理想的に処理することを理解しています。代わりにthis.props.intervals
を使用しましたが、2つの違いは何ですか?リアプトルを理解する
var SetIntervalMixin = {
componentWillMount: function() {
this.intervals = [];
},
setInterval: function() {
this.intervals.push(setInterval.apply(null, arguments));
},
componentWillUnmount: function() {
this.intervals.forEach(clearInterval);
}
};
var TickTock = React.createClass({
mixins: [SetIntervalMixin], // Use the mixin
getInitialState: function() {
return {seconds: 0};
},
componentDidMount: function() {
this.setInterval(this.tick, 1000); // Call a method on the mixin
},
tick: function() {
this.setState({seconds: this.state.seconds + 1});
},
render: function() {
return (
<p>
React has been running for {this.state.seconds} seconds.
</p>
);
}
});
ReactDOM.render(
<TickTock />,
document.getElementById('example')
);
ありがとう、それは私にとって理にかなっています。 – Elliot