2017-12-09 8 views
0

ボタンの組み合わせをクリックしようとしているフォームがあります。reactxでグローバル状態が変更された後に新しいアクションが送信される

各ボタンはタイプTのアクションをトリガーし、減速剤Rはその状態を更新し、新しい組み合わせがウェブサイト上でレンダリングされる。

今は面倒な部分があります。 私は自分のビジネスロジックをレンダリングしようとしている新しい状態を適用するレデューサーに実装しました。私が今必要とするのは、その状態が条件を受け入れ、新しいアクション(API要求)を送りたいときです。

この種の問題を解決する正しい方法は何ですか?

フラグをstateに設定し、コンポーネントの後に新しいアクションを呼び出しますか? どういうわけか、減速機に機能を派遣していますか?

...?

+0

「その状態は有効です」 - 有効な状態の定義は何ですか? –

+0

条件が満たされたときを意味する – Gregor

答えて

2

Redux Thunkを使用すると、複数のアクションをディスパッチし、アクションクリエータ内で非同期アクションをディスパッチできます。あなたのシナリオでは、次のようなことをすることができます:

function myAction() { 
    return (dispatch, getState) => { 
    ... 
    dispatch(firstAction); 

    const state = getState(); 

    // Check your state conditions from first action here. 
    dispatch(secondAction); 
    ... 
    } 
} 
+0

私はあなたの解決策を試し、有望に見えます。 – Gregor

+0

ええ、これです! – Gregor

1

この場合、ライブラリredux-sagaを使用できます。 redux-sagaを使用すると、アクションなどのコンポーネントから呼び出すサガを作成できます。サガでは、いくつかの還元行為を呼び出すことができます。状態がサガから有効な場合は、APIリクエストを呼び出すことができます。 redux-sagaの一般的な代替品はredux-thunkです。

+0

サンクを使用して私のシナリオにいくつかのシーケンス図を提供できますか? – Gregor

+1

申し訳ありません、私はサンクを使用したことはありません、私はredux-sagaを使用しましたが、私はこのライブラリもこのケースを処理することができます知っているので、サンクについて書いた。 –

関連する問題