2016-05-19 6 views
1

特定のアクションがいつ発生したのか、特定の状態がredux-thunkアクション作成者のコンテキストから更新されたのかを明確に知る方法はありません。redux-thunkアクション作成者からの状態変更を聞きます

私はこのような何かをしたい:

  1. アクションをディスパッチ可能回復可能なエラー条件
  2. エラー状態がへの回復のために
  3. 待ちを開始する別のアクションのシグナリング回復プロセスをディスパッチ検出完了
  4. 現在の操作を続行するか、またはそれを再ディスパッチします。

具体例:

  1. ユーザーの操作がAPI呼び出しアクションをトリガーするAPIコールが失敗したことを
  2. 注意、ユーザのため<dialog>をポップアップし、ログイン
  3. 派遣 'LOGIN_REQUIRED' アクションを、必要とします。
  4. ログイン状態が変わるのを待ちます(またはLOGIN_SUCCESSアクションが発生するのを待ちます)。
  5. あなたが派遣される特定のアクションをチェックしたい場合は、ミドルウェアが必要になります再び
+0

であなたのロジックを持つことができますので、あなたのコンポーネントが新しい小道具を受ける原因となり、減速機を経由して状態をどのように変化するかLOGIN_REQUIREDアクションと一緒に失敗したAPIコール(例えば、URI)を約。その後、ログインダイアログでそれを使用することができます。 – hansn

答えて

1

同じAPI呼び出しを行います。

実際には、「与えられたビットの状態を購読したい」場合、Reduxはそれを行うための組み込みの方法を提供しません。しかし、そのようなロジックを実装する多くのユーティリティがあります。 Redux FAQのhttp://redux.js.org/docs/FAQ.html#store-setup-subscriptions、およびlist of store subscription addonsのReduxアドオンカタログを参照してください。 (Redux middlewaresのリストには、「アクションのために聞く」のシナリオに役立つ何かを持っていることがあります。)あなたが使用することができます店で何が起こるかを可視化するための

0

import {composeWithDevTools} from 'redux-devtools-extension'; 

をとしてお店を作成します(のためにThumbミドルウェアを含むインスタンス)

const store = `createStore(rootReducer,composeWithDevTools(applyMiddleware(thunk)));` 

次に、ブラウザで拡張機能を使用できます。 あなたの州には{connect} from 'react-redux'でアクセスできます。 あなたの行動は、これはあなたが

componentWillReceiveProps(nextProps) {/*your business logic*/} 
関連する問題