【问题标题】:how to setInterval in react component constructor? [duplicate]如何在反应组件构造函数中设置间隔? [复制]
【发布时间】:2016-04-05 16:28:40
【问题描述】:

我需要在主组件时设置间隔。 我尝试在构造函数中设置它,例如

  constructor(props) {
    super(props);
    this.props.fetchUserInfo();
    this.props.fetchProducts();
    setInterval(console.log('1'), 1000);
  }

或在componentDidMount内部

  componentDidMount = () => {
    setInterval(console.log('1'), 1000);
  };

但它总是记录一次“1”。如何正确启动间隔?

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

setInterval(console.log('1'), 1000); 调用 console.log('1') 并将其返回值传递给setInterval,与foo(bar()) 调用 bar 并将其返回值传递给foo.

你想传递一个函数引用给它:

setInterval(function() {
    console.log('1');
}, 1000);

或者,如果您需要 this 在该函数中保持相同并且尚未使用 ES2015 语法:

setInterval(function() {
    console.log('1');
}.bind(this), 1000);

Function#bind 返回一个新函数,该函数在调用时会使用您给它的 this 值调用原始函数。

或者如果你使用的是 ES2015 语法

setInterval(() => {
    console.log('1');
}, 1000);

这将关闭创建它的this,不需要bind

【讨论】:

  • 哦,感谢您的快速回答,只是忘记了如何使用。
猜你喜欢
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多