预期的行为:应用程序应首先显示John,然后我将状态(名称)更改为George(setTimeout),以便显示。状态似乎没有改变。任何想法?
import React, { Component } from 'react';
class App extends Component {
constructor(props){
super(props);
this.state={name:"John"};
}
render() {
setTimeout(() => {
this.setState=({name:"George"})
}, 2000)
return (
<div>
{this.state.name}
</div>
);
}
}
export default App;
答案 0 :(得分:0)
在评论中,您可以使代码正常工作。但是我想在这里添加一个答案,其中包含在render()函数中更改组件状态的好消息。
当你的状态改变时,将调用render()函数,它将调用setTimeout,它将再次改变状态......所以你将进入渲染组件的无限循环。
在此期间,正确的方法是让你在组件的componentDidMount()
函数中设置setTimeout。