38 lines
941 B
JavaScript
38 lines
941 B
JavaScript
![]() |
function FormattedDate(props) {
|
|||
|
return <div style={{color:"#FFFFFF"}}><div>当前:{props.date.toLocaleDateString()}</div>
|
|||
|
<div>{props.date.toLocaleTimeString()}</div>
|
|||
|
</div>;
|
|||
|
}
|
|||
|
|
|||
|
export default class Datetime extends React.Component {
|
|||
|
constructor(props) {
|
|||
|
super(props);
|
|||
|
this.state = { date: new Date() };
|
|||
|
}
|
|||
|
|
|||
|
// 组件挂载完成之后启动定时器
|
|||
|
componentDidMount() {
|
|||
|
this.timeID = setInterval(() => this.tick(), 1000);
|
|||
|
}
|
|||
|
// 组件卸载之前清除定时器
|
|||
|
//(注:这是我们用这个钩子函数经常做的一件事)
|
|||
|
componentWillUnmount() {
|
|||
|
clearInterval(this.timeID);
|
|||
|
}
|
|||
|
|
|||
|
// 定义一个tick方法,专门用于调用setState方法修改date
|
|||
|
tick() {
|
|||
|
this.setState({
|
|||
|
date: new Date(),
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
render() {
|
|||
|
const { className }=this.props;
|
|||
|
return (
|
|||
|
<div className={className}>
|
|||
|
<FormattedDate date={this.state.date} />
|
|||
|
</div>
|
|||
|
);
|
|||
|
}
|
|||
|
}
|