【发布时间】:2018-08-22 21:48:12
【问题描述】:
我试图在 componentDidMount() 钩子中每 5 秒更改一次组件的状态,如下所示
import React, { Component } from 'react';
export default class ToTest extends Component {
constructor(props) {
super(props);
this.state = {
test: false
};
}
componentDidMount() {
setTimeout(() => { this.setState({ test: !this.state.test }) }, 5000);
}
renderDiv() {
if(this.state.test) {
return (<div>test is true</div>)
}
else {
return (<div>test is false</div>)
}
}
render() {
return (
<div>{ this.renderDiv() }</div>
);
}
}
但它只执行一次。它从 false 变为 true 一次,然后什么也没有。 我错过了什么?
【问题讨论】:
-
你需要使用
setInterval而不是setTimeout,它会一次又一次地调用同一个函数。
标签: javascript reactjs settimeout