J'essaye de créer un composant de réaction qui rend une horloge à retardement. J'utilise le moment et le moment-fuseau horaire pour différentes fuseaux horaires. J'ai été capable de créer un composant avec une horloge statique (ne pas incrémenter), mais je suis incapable de créer une horloge à cocher. Le code est ci-dessous:Création d'une horloge en cours en utilisant moment & moment-timezone dans la réaction
import React from 'react';
import ReactDOM from 'react-dom';
import $ from 'jquery';
import moment from 'moment';
import 'moment-timezone';
export default class TimeClock extends React.Component {
constructor(props) {
super(props);
this.state = { time: moment().clone().tz(this.props.timezone).toLocaleString() };
this.displayTime = this.displayTime.bind(this);
}
displayTime(){
//let now = moment();
//let location = now.clone().tz(this.props.timezone);
this.setState({
time: moment().clone().tz(this.props.timezone).toLocaleString()
});
//return location.toLocaleString();
}
render(){
//let now = moment();
//let location = now.clone().tz(this.props.timezone);
//let timezone = this.props.timezone;
return (
<div>
<p>{this.props.timezone}</p>
<p>{setInterval(this.displayTime,1000)}</p>
</div>
);
}
}
Note: avoir été adopté un accessoire (fuseau horaire) de app.js, un composant parent.
Code actuel produit les éléments suivants:
Australia/Melbourne
#######
où ####### représente un nombre qui a commencé à 5 ou 6 et augmente rapidement. Est-ce que quelqu'un peut expliquer ce que je fais mal? Edit: peu après avoir posté cette question, j'ai trouvé le lien suivant (Where to apply my moment() function in a react component?), que j'ai adapté à mon code et qui a fonctionné, mais je ne comprends pas pourquoi ma tentative n'a pas fonctionné. Je suis nouveau à réagir.
WRT moment, utilisez 'format', pas' toLocaleString', et vous n'avez pas non plus besoin de cloner ou d'obtenir maintenant en heure locale. 'moment.tz (thetimezone) .format (yourdesiredformat)' fonctionnera. –
ouais j'aurais dû supprimer ce code avec les variables "now" et "location" puisque je ne les utilisais pas. Je vais modifier le code ci-dessus. – lycan1385