Sto cercando di accedere allo stato di un componente all'interno di un setInterval
in questo modo, ma non sta funzionando:Problema accesso Stato all'interno setInterval in React.js
componentDidMount: function() {
setInterval(function() {
console.log(this.state);
}, 3000);
}
Tuttavia, se metto la funzione di callback in un metodo componente separato, funziona perfettamente:
displayState: function() {
console.log(this.state)
}
componentDidMount: function() {
setInterval(this.displayState(), 3000);
}
Qualsiasi idea del perché sta succedendo questo? Preferirei usare la prima opzione.
La seconda versione funziona perché Reagire [ "auto-lega"] (https : //facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html) metodi sui componenti. Per far funzionare la prima versione, 'bind' la funzione come indicato in una delle risposte. –
non è possibile chiamare la funzione quando si passa a setInterval, che viene immediatamente attivata immediatamente e l'intervallo non esegue alcuna operazione. come funziona perfettamente non lo capisco. – dandavis