In react.js, è meglio memorizzare un riferimento di timeout come variabile di istanza (this.timeout) o come variabile di stato (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);
}
...
})
o
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);
}
...
})
entrambi questi approcci funzionano. Voglio solo conoscere i motivi per utilizzare uno sull'altro.
this.timeout = setTimeout(this.openWidget, DELAY);
this.state
direttamente, perché chiamare insetState()
seguito potrebbe sostituire la mutazione che hai fatto. Trattalothis.state
come se fosse immutabile."