Supponendo che questo stia accadendo all'interno di un componente, memorizzare l'id di timeout in modo che possa essere cancellato in seguito. Altrimenti, dovrai archiviare l'ID da qualche altra parte a cui è possibile accedere successivamente, come un oggetto negozio esterno.
this.timeout = setTimeout(function(), {
// Do something
this.timeout = null
}.bind(this), 3000)
// ...elsewhere...
if (this.timeout) {
clearTimeout(this.timeout)
this.timeout = null
}
Probabilmente si vorrà anche assicurarsi qualsiasi timeout in attesa viene cancellato in componentWillUnmount()
troppo:
componentWillUnmount: function() {
if (this.timeout) {
clearTimeout(this.timeout)
}
}
Se avete un po 'interfaccia utente, che dipende dal fatto o meno un timeout è in attesa, è' Voglio invece archiviare l'id nello stato del componente appropriato.
fonte
2015-04-09 08:48:19
è ancora solo JS, lo fai nello stesso modo in cui lo faresti senza React. –
'clearTimeout' funzionerà assumendo che tu memorizzi l'id del timer. – WiredPrairie