Javascript 为什么这个时间间隔停止滴答作响?

Javascript 为什么这个时间间隔停止滴答作响?,javascript,reactjs,timer,Javascript,Reactjs,Timer,我在玩这个示例计时器,然后想看看是否可以捕获/将数据传递到计时器中,所以我从一条简单的消息开始。如果我将消息删除到计时器,它会相应地滴答作响。我开始记录其他生命周期方法,但我很好奇这是否是JS的东西,我不认为这是相对于生命周期中的东西。我用叉子叉了个垃圾桶 “代码” var Timer = React.createClass({ getInitialState: function() { return {secondsElapsed: 0}; }, tick: function(msg) {

我在玩这个示例计时器,然后想看看是否可以捕获/将数据传递到计时器中,所以我从一条简单的消息开始。如果我将消息删除到计时器,它会相应地滴答作响。我开始记录其他生命周期方法,但我很好奇这是否是JS的东西,我不认为这是相对于生命周期中的东西。我用叉子叉了个垃圾桶

“代码”

var Timer = React.createClass({
getInitialState: function() {
 return {secondsElapsed: 0};
},
tick: function(msg) {
 console.log('msg is',msg);
 this.setState({secondsElapsed: this.state.secondsElapsed + 1});
},
componentDidMount: function() {
 this.interval = setInterval(this.tick('hi'), 1000);
},
componentWillUnmount: function() {
 clearInterval(this.interval);
},
render: function() {
 return (
   <div>Seconds Elapsed: {this.state.secondsElapsed}</div>
 );
}
});

React.render(<Timer />, document.getElementById("content"));
var Timer=React.createClass({
getInitialState:函数(){
返回{secondsElapsed:0};
},
勾选:功能(msg){
log('msg is',msg);
this.setState({secondsElapsed:this.state.secondsElapsed+1});
},
componentDidMount:function(){
this.interval=setInterval(this.tick('hi'),1000);
},
componentWillUnmount:function(){
clearInterval(这个.interval);
},
render:function(){
返回(
秒数:{this.state.secondsElapsed}
);
}
});
React.render(,document.getElementById(“内容”);
将代码更改为:

componentDidMount: function() {
   this.interval = setInterval(()=>this.tick('hi'), 1000);
}
将代码更改为:

componentDidMount: function() {
   this.interval = setInterval(()=>this.tick('hi'), 1000);
}

您只需在代码中更改此位:

this.interval = setInterval(() => this.tick('hi'), 1000);
或者,您也可以将此发送到回调:

this.interval = setInterval(function(t) {t.tick('hi')}, 1000, this);
查看更新的小提琴


接受(至少)两个参数,第一个是回调,需要是函数。您直接提供了代码;该代码必须位于函数内部

func

每延迟毫秒执行一次的函数。函数没有传递任何参数,并且不需要返回值


您只需在代码中更改此位:

this.interval = setInterval(() => this.tick('hi'), 1000);
或者,您也可以将此发送到回调:

this.interval = setInterval(function(t) {t.tick('hi')}, 1000, this);
查看更新的小提琴


接受(至少)两个参数,第一个是回调,需要是函数。您直接提供了代码;该代码必须位于函数内部

func

每延迟毫秒执行一次的函数。函数没有传递任何参数,并且不需要返回值


你能稍微扩展一下吗?为什么是组件unmounting@Barry我们卸载组件是因为没有使用过,当组件卸载页面很容易呈现在大项目中的其他组件时,您可以展开一点吗?为什么是组件unmounting@Barry我们卸载组件是因为没有使用,当组件卸载页面很容易呈现其他组件时大项目