Reactjs 无法更改状态
预期行为:应用程序应首先显示John,然后我将状态(名称)更改为George(设置超时),以便显示。但状态似乎没有改变。有什么想法吗Reactjs 无法更改状态,reactjs,Reactjs,预期行为:应用程序应首先显示John,然后我将状态(名称)更改为George(设置超时),以便显示。但状态似乎没有改变。有什么想法吗 import React, { Component } from 'react'; class App extends Component { constructor(props){ super(props); this.state={name:"John"}; } render() { 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;
import React,{Component}来自'React';
类应用程序扩展组件{
建造师(道具){
超级(道具);
this.state={name:“John”};
}
render(){
设置超时(()=>{
this.setState=({name:“George”})
}, 2000)
返回(
{this.state.name}
);
}
}
导出默认应用程序;
在注释中,您找到了使代码正常工作的方法。但是我想在这里添加一个答案,告诉您在render()函数中更改组件的状态不是一个好主意
当您的状态更改时,将调用render()函数,该函数将调用setTimeout,它将再次更改状态。。。因此,您将进入渲染组件的无限循环
在这期间,正确的方法是让您在组件的
componentDidMount()
函数中设置超时。this.setState=({name:'George})
应该是this.setState({name:'George})
哦,这太尴尬了。谢谢。