我正在阅读官方 react 网站上的教程。在生命周期方法的例子中,在componentDidMount方法下,setInterval函数设置了timerID。
我的问题是,即使 timerID 已初始化,但从未在整个应用程序中调用过,应用程序如何在不显式调用应用程序中任何地方的 timerID 的情况下工作。这是下面的代码。
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
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')
);