In react.js, ist es besser, eine Timeout-Referenz als Instanzvariable (this.timeout) oder als Statusvariable (this.state.timeout) zu speichern?Instanz v Statusvariablen in 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);
}
...
})
oder
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);
}
...
})
beide Ansätze funktionieren. Ich will nur die Gründe wissen, warum ich einen über den anderen verwende.
aus der [Dokumentation] (http://facebook.github.io/react/docs/component-api.html): * "** NIE ** mutieren' this.state' direkt, wie der Aufruf 'setState()' kann danach die von Ihnen vorgenommene Mutation ersetzen. Behandeln Sie 'this.state', als wäre es unveränderlich." * –
Tipp: Verwenden Sie Reacts Autobinding: 'this.timeout = setTimeout (this.openWidget, DELAY);' – David
Wofür sollte DELAY eingestellt sein? – justingordon