Wciąż jestem całkiem nowy w React, ale powoli się ścigałem i napotkałem coś, na czym utknąłem.
Próbuję zbudować komponent „timera” w Reakcie i szczerze mówiąc nie wiem, czy robię to dobrze (czy wydajnie). W moim kodu poniżej, ustawić stan powrócić obiektu { currentCount: 10 }
i zostały bawiąc componentDidMount
, componentWillUnmount
i render
i mogę się tylko do stanu „odliczać” od 10 do 9.
Pytanie dwuczęściowe: Co się mylę? I czy istnieje bardziej efektywny sposób korzystania z setTimeout (zamiast używania componentDidMount
& componentWillUnmount
)?
Z góry dziękuję.
import React from 'react';
var Clock = React.createClass({
getInitialState: function() {
return { currentCount: 10 };
},
componentDidMount: function() {
this.countdown = setInterval(this.timer, 1000);
},
componentWillUnmount: function() {
clearInterval(this.countdown);
},
timer: function() {
this.setState({ currentCount: 10 });
},
render: function() {
var displayCount = this.state.currentCount--;
return (
<section>
{displayCount}
</section>
);
}
});
module.exports = Clock;
bind(this)
nie jest już potrzebne, reaguje teraz samodzielnie.