Dans react.js, est-il préférable de stocker une référence de délai d'expiration en tant que variable d'instance (this.timeout) ou variable d'état (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);
}
...
})
ou
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);
}
...
})
ces deux approches fonctionnent. Je veux juste connaître les raisons de l'utilisation de l'un par rapport à l'autre.
this.timeout = setTimeout(this.openWidget, DELAY);
this.state
directement, car un appelsetState()
après peut remplacer la mutation que vous avez faite. Traitezthis.state
comme si elle était immuable."