我正在尝试做一个时钟组件,只是在网页中以本地格式给出日期和时间.我在我的webpack环境中使用命令行npm i -save导入了MomentJS.接下来我在我的Clock.jsx组件中写了这个(主要基于网站上的React示例).
import React from 'react';
import Moment from 'moment';
export default class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {
dateTimestamp : Date.now()
};
}
tick = () => {
this.setState({dateTimestamp: this.state.dateTimestamp + 1});
console.log('tick');
}
componentDidMount() {
this.interval = setInterval(this.tick, 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
}
render() {
const date = this.state.dateTimestamp;
return(
<div className="clock"> Heure locale : {date}</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这样做时间戳正确递增.但是,在对象中传递新的state元素时,第一个值(基于Date.now())是在构造函数中计算的,但是对于每个tick,只有时间戳递增格式化的日期会粘贴在其第一个值上.这是代码.
import React from 'react';
import Moment from 'moment';
export default class Clock …Run Code Online (Sandbox Code Playgroud)