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

を状態を更新されていませんが、(Expressを使用して)サーバー側でそれが唯一の「変更」が、STATUS2ショー」に「デフォルト」からSTATUS1を更新しますデフォルト'。サーバー側のsetTimeoutで状態を更新する方法; `矢印機能を備えたもの`のvar _thisは必要ない=この:SETSTATE()は、それが動作クライアント側のサーバー側でのsetTimeoutで

+2

サイドノートを試してみました。 –

+0

クライアント側で問題を再現できますか?その場合は、スタックスニペット( '[<]]'ツールバーボタン)を使用して** runnable ** [mcve]で質問を更新してください。スタックスニペットはJSXを含むReactをサポートします。 [これを行う方法はこちら](http://meta.stackoverflow.com/questions/338537/)。 (jsFiddleにそのコードをコピーして関連するものを追加すると(https://jsfiddle.net/7gpn5jva/)、クライアント側で問題を再現することはできません) –

+0

クライアント側で問題なく動作していますstatus1とstatus2はサーバー側でsetTimeoutのstatus2を更新できません – rohit

答えて

0

あなたは?:

componentWillMount(){ 
    this.setState({status1:'changed'}); 
    setTimeout(() => {this.setState({status2:'changed'})},2000); 
} 
+0

同じ結果..更新されません – rohit

+0

setTimeoutはサーバーそれは「BOM(ブラウザオブジェクトモデル)」の一部であるからです。私は彼らがhttps://github.com/reactjs/React.NET/issues/249でここで議論していたものはよく分かりませんが、彼らは同じ問題を抱えていたようですが、 – thinhvo0108

+0

私は同じことを考えましたが、 Node.jsは、Webブラウザによって提供されるタイマーAPIと同様のAPIを実装しており、APIを使用するためにrequire( 'timer')を呼び出す必要はありません。 [link](https://nodejs.org/api/timers.html)... setTimoutをajaxのようなものに置き換えても、出力は同じですが、状態は変わりません – rohit

関連する問題