javascript - 如何在 react 组件构造函数中设置间隔?

标签 javascript reactjs

<分区>

我需要在主要组件时设置Interval。 我试着在构造函数中设置它,比如

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

或者在componentDidMount

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

但它总是记录一次“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

关于javascript - 如何在 react 组件构造函数中设置间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432023/

相关文章:

node.js - 如何从 ReactJS 中的任何 url 获取元数据(图像、标题、描述)

javascript - 如何避免 redux 中的重复代码(鸭子方法)?

javascript - document.createElement/document.body.appendChild 不在执行时创建/写入 div

javascript - atNavButton 将按钮文本更改为 meteor 用户帐户中的图标

javascript - javascript 警报中的空格?

javascript - React/Javascript 中具有动态禁用功能的多个输入项

node.js - React + Material-UI - 警告 : Prop className did not match

javascript - 如何在 Mongoose 中将一个模式的引用添加到另一个模式并通过 json 插入数据?

javascript - 将多数组转换为具有属性的对象数组

reactjs - React Redux : More containers v. 秒。更少的容器