Próbuję uzyskać dostęp do stanu komponentu wewnątrz setInterval
w ten sposób, ale to nie działa:Problem dostępu stan wewnątrz setInterval w React.js
componentDidMount: function() {
setInterval(function() {
console.log(this.state);
}, 3000);
}
Jednak gdybym umieścić funkcję zwrotną w sposób metoda oddzielnego komponentu, działa idealnie:
displayState: function() {
console.log(this.state)
}
componentDidMount: function() {
setInterval(this.displayState(), 3000);
}
Każdy pomysł, dlaczego tak się dzieje? Wolałbym skorzystać z pierwszej opcji.
Druga wersja działa bo React [ "Automatyczna wiąże"] (https : //facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html) metody na komponentach. Aby pierwsza wersja działała, należy "powiązać" funkcję, jak podano w jednej z odpowiedzi. –
nie można wywołać funkcji po przejściu do setInterval, która uruchamia ją natychmiast, a interwał nic nie robi. jak to działa idealnie, nie "dostaję". – dandavis