Je suis encore assez nouveau chez React, mais j'ai progressé lentement et j'ai rencontré quelque chose sur lequel je suis coincé.
J'essaie de créer un composant "timer" dans React, et pour être honnête, je ne sais pas si je le fais correctement (ou efficacement). Dans mon code ci - dessous, je mets l'état de retourner un objet { currentCount: 10 }
et ont été à jouer avec componentDidMount
, componentWillUnmount
et render
je peux seulement obtenir l'état de « compte à rebours » de 10 à 9.
Question en deux parties: qu'est-ce que je me trompe? Et, y a-t-il un moyen plus efficace d'utiliser setTimeout (plutôt que d'utiliser componentDidMount
& componentWillUnmount
)?
Merci d'avance.
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)
n'est plus nécessaire, react le fait tout seul maintenant.