reactjs具有重复运行的功能

时间:2019-03-07 07:24:54

标签: javascript html reactjs

我试图在Reactjs中每秒编写一次“ asdf”来进行控制台。我正在使用setInterval。

这是我的代码:

<head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.js"></script>
</head>

<body>
<div id="root"></div>
<script type="text/babel">

class NameForm extends React.Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    this.interval = setInterval(console.log("asdf"),1000)
  }

  render() { return (<div/ >) }
}

ReactDOM.render(
  <NameForm />,
  document.getElementById('root')
);

</script>
</body>

当前,asdf仅写入控制台一次。为什么是这样?谢谢

2 个答案:

答案 0 :(得分:5)

当前,您将undefined传递给setInterval是因为console.log()返回了undefined。将其包装为“函数”并作为参数传递

componentDidMount() {this.interval = setInterval(() => console.log("qwer"),1000)}

答案 1 :(得分:2)

setInterval需要一个函数指针,但是您将函数赋予了第一个参数。

setInterval(function (){

//your function 

}, 3000)

或以es6方式,您可以使用箭头功能

setInterval(() => {
 //your function comes here
}, 3000)