zu halten Ich habe ein React-Karussell erstellt, in dem ich SetInterval-Methode in ComponentDidMount-Methode wie folgt aufrufen, scheint aber wie React wirft Warnung wie unten angehängt. Tue ich es falsch? idealerweise componentDidMount sollte nur einmal aufgerufen werden und mein Code sollte gut funktionieren.Wo ist der beste Ort, um setInterval() in React Komponente
componentDidMount() {
const self = this;
if(self.props.autoPlay) {
setInterval(() => {
if(self.state.current != self.props.images.length - 1){
self.handleTransition(self.state.current + 1);
} else {
self.handleTransition(0);
}
}, 3000);
}
}
Mögliches Duplikat von [Using setInterval in React Component] (https://stackoverflow.com/questions/45158087/using-setinterval-in-react-component) –
Trotz der angegebenen Antwort kann die Verwendung von 'self = this' sein als ein Anti-Muster betrachtet. Es ist besser, 'Function.prototype.bind()' bei Callbacks zu verwenden. Auch 'setInterval()' kann zu "stack overflow" Problemen führen, wenn die Tasks länger als das Intervall laufen. Es ist besser, 'setTimeout()' zu verwenden und nach dem Rückruf neu zu planen. –