Чи краще зберігати посилання на час очікування як змінну екземпляра (this.timeout) або змінну стану (this.state.timeout) у react.js?
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.timeout);
}
...
})
або
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.state.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.state.timeout);
}
...
})
обидва ці підходи працюють. Я просто хочу знати причини використання однієї над іншою.
this.timeout = setTimeout(this.openWidget, DELAY);
this.state
безпосередньо, оскільки дзвінокsetState()
після цього може замінити зроблену вами мутацію. Поводьтесяthis.state
так, ніби вона була незмінна".