Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让函数重复运行_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 让函数重复运行

Javascript 让函数重复运行,javascript,html,reactjs,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/reac

我正在尝试在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只写入控制台一次。为什么会这样?感谢您当前正在将undefined传递给setInterval,因为console.logreturn undefined。将其包装在“函数”中,并作为参数传递

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

setInterval需要函数的指针,但您将函数指定给了第一个参数

setInterval(function (){

//your function 

}, 3000)
或者在es6中,您可以使用箭头函数

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

此链接解释了代码失败的原因和原因: