Czy w respond.js lepiej jest przechowywać odwołanie do limitu czasu jako zmienną instancji (this.timeout) czy zmienną stanu (this.state.timeout)?
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);
}
...
})
lub
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);
}
...
})
oba te podejścia działają. Chcę tylko poznać powody używania jednego nad drugim.
this.timeout = setTimeout(this.openWidget, DELAY);
this.state
bezpośrednio, ponieważsetState()
późniejsze wywołanie może zastąpić dokonaną przez Ciebie mutację. Traktujthis.state
tak, jakby była niezmienna”.