Javascript 让函数重复运行
我正在尝试在reactjs中每秒将asdf写入控制台。我正在使用setInterval 这是我的密码: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
<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)
此链接解释了代码失败的原因和原因: