我试图开始做出反应。在检查代码示例后,我遇到了一个非常奇怪的事情。这是链接[React tutorial]。这是生命周期部分的代码;
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
那么,在设置间隔时为什么使用箭头功能?我试过了(this.tick()本身)但它并没有像预期的那样工作。
答案 0 :(得分:1)
setInterval需要传递一个函数引用,所以你可以写
setInterval( () => this.tick(), 1000 );
这不会运行this.tick,它只是告诉setInterval在选择时运行tick。箭头函数将'this'绑定为您的组件。
但是setInterval( function () { this.tick(); }, 1000 );
不会将此绑定为您的组件,因此您需要编写setInterval(this.tick.bind(this), 1000 );
如果你写
setInterval( this.tick(), 1000 );
然后在传递给setInterval之前运行tick,并且tick的返回值是setInterval将使用的。
我希望说清楚。 setInterval只需要对函数的引用:)