class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()}; // may have more fields
}
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() { // this.state.date = new Date(); // changing a state directly won’t work
this.setState({date: new Date()});
}
render() {
return (
Hello, world!
It is {this.state.date.toLocaleTimeString()}.
);
}}ReactDOM.render(
,
document.getElementById('root'));