2017-11-26 8 views
0

私は、ユーザーがサーバーにいくつかのデータを提出するアプリでパネルを開くことができる機能を実装しています。そして、サーバーは、データが有効かどうかを返します。これは、コンポーネントに転送されます。現在のところ、私はアクションクリエイターでこの副作用を行い、サーバーからの応答を反映するためにReduxストアを更新します(有効または無効、基本的には有効または無効)。サーバコールからの応答を呼び出すコンポーネントに応答を渡す際のベストプラクティスは何ですか?

データが有効であればパネルを自動クローズします。しかし、問題はReduxストアが以前の呼び出し(消去されていない)のAPIステータスとしてすでに「有効」である可能性があるため、この有効なステータスが以前の送信か現在の送信かどうかを判断する方法がないことです。

現在、私は、サーバへの各サブミッションコールの前にペンディングに有効性を設定するイベントをディスパッチしています。パネルのコンポーネントで、this.props.validness === 'pending' && nextProps.validness===trueの場合、パネルを閉じます。しかし、Viewを現在の状態だけでなく前の状態にも依存させるのがベストプラクティスではないことに恐れています。

+0

あなたの戦略は正しいです。それが私のやり方です。もう1つの方法は、パネルを閉じて減速機の状態を初期状態にリセットすることです。 – vijayst

答えて

0

私には1つの提案があります。レデューサーロード中に別の状態を持つこと。 APIコールが行われたときにローディングをtrueに設定します。 APIコールが終了したら、読み込みをfalseに設定します。 API呼び出しが行われるとき、validnessプロパティはundefinedに設定できます。

+0

私はreduxストアをバイパスしてしまいました。私は単に 'redux-thunk'で返されたAPI呼び出しからの応答を持ち、コンポーネント内の応答を処理しています(他のすべてのコンポーネントは応答を気にしません)。したがって、後続の「ディスパッチ」はアクション作成者に呼び出されません。 – kun

関連する問題