Vous étiez donc sur la bonne voie. À l'intérieur de votre, componentDidMount()
vous auriez pu terminer le travail en implémentant setInterval()
pour déclencher le changement, mais rappelez-vous que la façon de mettre à jour l'état d'un composant est via setState()
, donc à l'intérieur de vous, componentDidMount()
vous auriez pu faire ceci:
componentDidMount() {
setInterval(() => {
this.setState({time: Date.now()})
}, 1000)
}
De plus, vous utilisez Date.now()
ce qui fonctionne, avec l' componentDidMount()
implémentation que j'ai proposée ci-dessus, mais vous obtiendrez un long ensemble de mises à jour de nombres désagréables qui ne sont pas lisibles par l'homme, mais c'est techniquement le temps de mise à jour toutes les secondes en millisecondes depuis le 1er janvier 1970, mais nous veulent rendre ce temps lisible à la façon dont nous, les humains, lisons le temps, donc en plus d'apprendre et de mettre en œuvre, setInterval
vous voulez en savoir plus surnew Date()
et toLocaleTimeString()
et vous mettre en œuvre comme ceci:
class TimeComponent extends Component {
state = { time: new Date().toLocaleTimeString() };
}
componentDidMount() {
setInterval(() => {
this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)
}
Remarquez que j'ai également supprimé la constructor()
fonction, vous n'en avez pas forcément besoin, mon refactor équivaut à 100% à l'initialisation du site avec la constructor()
fonction.
react-interval-rerender