Javascript setState()未在服务器端更新setTimeout中的状态 componentWillMount(){ var_this=这个; this.setState({status1:'changed'}); setTimeout(()=>_this.setState({status2:'changed'}),2000); } render(){ console.log('state object',this.state); 返回( ); }

Javascript setState()未在服务器端更新setTimeout中的状态 componentWillMount(){ var_this=这个; this.setState({status1:'changed'}); setTimeout(()=>_this.setState({status2:'changed'}),2000); } render(){ console.log('state object',this.state); 返回( ); },javascript,reactjs,express,Javascript,Reactjs,Express,在客户端,它可以工作,但在服务器端(使用express),它只会将状态1从“默认”更新为“已更改”,但状态2显示“默认”。如何在服务器端更新setTimeout中的状态。您尝试过吗?: componentWillMount(){ var _this=this; this.setState({status1:'changed'}); setTimeout(()=> _this.setState({status2:'changed'}),2000);

在客户端,它可以工作,但在服务器端(使用express),它只会将状态1从“默认”更新为“已更改”,但状态2显示“默认”。如何在服务器端更新setTimeout中的状态。

您尝试过吗?:

componentWillMount(){  
    var _this=this;    
    this.setState({status1:'changed'});  
    setTimeout(()=> _this.setState({status2:'changed'}),2000);  
}
render(){
   console.log('state object',this.state);
   return(
       <div></div>
   );
}

旁注:不需要
var\u this=this带有箭头函数的东西。你能在客户端复制问题吗?如果是这样,请使用可运行的堆栈代码段(
[]
工具栏按钮)更新您的问题。堆栈代码段支持React,包括JSX。(如果我只是,我无法复制问题客户端。)在客户端工作正常,它会更新status1和status2,但在服务器端,它无法在SetTimeOut中更新status2。您将在控制台中获得两个输出。第一个应该是“状态对象状态1:更改,状态2:默认”,第二个是“状态对象状态1:更改,状态2:更改”。你能check@ShubhamKhatri它只在客户端工作,但我希望服务器端也有相同的响应。。status2未通过服务器获取更新相同的结果。。不更新所以setTimeout似乎在服务器端不起作用,因为它是“BOM(浏览器对象模型)的一部分”。我不确定他们在这里讨论的是什么,但似乎他们有相同的问题,虽然我也这么认为,但Node.js中的计时器函数实现了与Web浏览器提供的计时器API类似的API,并且不需要调用require(“计时器”)来使用API。。。即使我用ajax调用之类的其他东西替换setTimout,输出也是一样的,状态没有变化
componentWillMount(){  
    this.setState({status1:'changed'});  
    setTimeout( () => {this.setState({status2:'changed'})},2000);  
}