我试图在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仅写入控制台一次。为什么是这样?谢谢
答案 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)