2017-06-10 10 views
0

私は次のように回答しています& Reduxです。私は行動を取っている、減速は別々に働いている。私は状態を多かれ少なかれ適切に管理しています。店舗の更新が反映されていません

私はいくつかのテキストボックスとボタン(無効)を持っているUIを作成しようとしています。テキストボックスには、関数を呼び出すonchangeイベントが追加されました。

onChangeTextbox(){ 

} 

この関数では次のことを行います。 1. reduxストアの状態を更新します。

onChangeTextbox(){ 
    updateStateOfTextBox(); 
} 

2.これを実行した後、私は、uiのすべてのテキストボックスに何かがあるかどうかを調べます。もしそうなら、私はボタンをさらに操作することができます。

onChangeTextbox(){ 
     updateStateOfTextBox(); 
     updateStateOfButton(); 
} 

1つのこと以外はすべて機能しています。 最後の空のテキストボックスに1文字入力するとすぐにボタンが有効にならず、さらに文字を入力するとボタンが有効になります。ボタンを無効にする場合も同様です。

私が見つけた問題は、制御が機能updateStateOfTextBox();を完了し、updateStateOfButton();機能を入力すると状態が変わらないことです。レンダリング()が発生すると、状態の変化が反映されます。

私はその問題を修正したいと思います。これに対する解決策や示唆は高く評価されます。おかげさまで

+0

コンポーネントの更新のように解釈することができます。何が間違っているかを確認するには、いくつかのコードを見る必要があります。 –

+0

状態を更新する方法を知っていなければ、助けてはいけません。また、あなたがアクションをディスパッチした後に*状態*を即座に*照会している場合は、状態がまだ更新されていない可能性があります。 –

+0

私はそれを実装する方法を知らないので、ライフサイクルメソッドを適用していません。私はコードを提供することができませんでした。シナリオはそのままです。特別な注意が必要な場合は、plsに言及してください。 –

答えて

0

このような状況の解決策を見つけました。

componentsWillRecieveProps(newProps){ 

} 

このライフサイクルのメソッドは、ゲームを変更します。

componentsWillRecieveProps(newProps){ 
    newProps.state // this will give you new updated state which your action updated. 
    this.props.state // this will give you local or your state 
// Here you can update your local state with global state 
// And call the other function here as 
updateStateOfButton(); 
} 

したがって溶液は(shouldComponentUpdateロジック除く)プロプ/状態変更時

onChangeTextbox(){ 
    updateStateOfTextBox(); 
} 

componentsWillRecieveProps(newProps){ 
. 
. 
updateStateOfButton(); 
} 
関連する問題