Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组件未安装异常行为_Javascript_Reactjs_React Redux - Fatal编程技术网

Javascript 组件未安装异常行为

Javascript 组件未安装异常行为,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我正在浏览react文档,其中显示了时钟计时器的实现。 当组件挂载后,将调用componentDidMount方法,并因此执行其中的setInterval,因此在1秒后状态将发生变化,时钟组件将重新呈现。在这一点之前我都很好,但是如何再次调用senInterval函数呢?因为componentDidMount只被调用一次,所以状态在第二次之后是如何设置的,请解释一下这里发生了什么 类时钟扩展React.Component{ 建造师(道具){ 超级(道具); this.state={date:ne

我正在浏览react文档,其中显示了时钟计时器的实现。 当组件挂载后,将调用componentDidMount方法,并因此执行其中的setInterval,因此在1秒后状态将发生变化,时钟组件将重新呈现。在这一点之前我都很好,但是如何再次调用senInterval函数呢?因为componentDidMount只被调用一次,所以状态在第二次之后是如何设置的,请解释一下这里发生了什么

类时钟扩展React.Component{
建造师(道具){
超级(道具);
this.state={date:new date()};
}
componentDidMount(){
this.timerID=setInterval(
()=>这个。勾选(),
1000
);
}
组件将卸载(){
clearInterval(this.timerID);
}
勾选(){
这是我的国家({
日期:新日期()
});
}
render(){
返回(
你好,世界!
它是{this.state.date.toLocaleTimeString()}。
);
}
}
ReactDOM.render(
,
document.getElementById('root'))
);
setInterval()方法以指定的间隔(毫秒)调用函数或计算表达式

这就是setInterval所做的。它可以用来在一定的时间间隔内重复某些任务。如果只想执行一次,请改用setTimeout()



setInterval是一个函数,它以1秒的间隔不断调用自己。componentDidMount所做的是在安装组件后执行其中的代码一次

所以在本例中,componentDidMount调用了setInterval一次,setInterval每1秒调用一次,直到您在componentWillUnmount中清除它为止