Ich bin immer noch relativ neu bei React, aber ich habe mich langsam weiterentwickelt und bin auf etwas gestoßen, auf dem ich feststecke.setInterval in einer React App
Ich versuche, eine "Timer" -Komponente in React zu bauen, und um ehrlich zu sein, weiß ich nicht, ob ich das richtig mache (oder effizient). In meinem Code unten, habe ich den Zustand eines Objekts { currentCount: 10 }
zurückzukehren und liebäugelt wurden mit componentDidMount
, componentWillUnmount
und render
und ich kann nur den Zustand bekommen zu „Countdown“ von 10 bis 9.
zweiteilige Frage : Was mache ich falsch? Und gibt es einen effizienteren Weg mit setTimeout (statt componentDidMount
&)?
Vielen Dank im Voraus.
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 (diese)' nicht mehr benötigt wird, reagieren tut dies für sich allein jetzt. – Derek
Ihre Timer-Methode aktualisiert currentCount nicht –
@Derek sind Sie sicher? Ich habe gerade meine Arbeit, indem ich 'this.timer.bind (this)' hinzugefügt, da this.timer auf der eigenen nicht funktioniert –