Javascript 设置超时。只能更新已安装或正在安装的组件
我是react的新手,我试图在1秒后改变状态Javascript 设置超时。只能更新已安装或正在安装的组件,javascript,reactjs,settimeout,Javascript,Reactjs,Settimeout,我是react的新手,我试图在1秒后改变状态 export class Header extends Component { constructor() { super() this.state = {name: 'Will'} } render() { setTimeout(() => { this.setState({ name: 'Bob' }) }, 2000); return ( <h1> {this.stat
export class Header extends Component {
constructor() {
super()
this.state = {name: 'Will'}
}
render() {
setTimeout(() => {
this.setState({ name: 'Bob' })
}, 2000);
return (
<h1>
{this.state.name}
</h1>
)
}
}
但是他给了我这个警告
警告:只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用setState、replaceState或forceUpdate。这是禁止的。
请检查标题组件的代码
首先,渲染函数不应有任何副作用,例如启动计时器。在componentDidMount中移动该代码。另外,清除componentWillUnmount中的超时,以确保移除组件后超时不会生效。首先,渲染函数不应该有任何副作用,例如启动计时器。在componentDidMount中移动该代码。另外,清除componentWillUnmount中的超时,以确保移除组件后超时不会生效。这应该可以消除你所犯的错误