Я попытался прочитать, что происходит, и обнаружил, что использование стрелочной функции внутри функции tick () решает проблему, но я не понимаю почему. Может кто-нибудь объяснить?
import React from "react";
import ReactDOM from "react-dom";
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = { date: new Date() };
}
componentDidMount() {
setInterval(this.tick(), 1000);
}
tick() {
this.setState({ date: new Date() });
}
render() {
return (
<div>
<h1>Hello, World</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
ReactDOM.render(<Clock />, document.getElementById("root"));