2017-07-09 2 views
2

など。ある種の行動については、叙事詩の前にレデューサーがそれを処理してもらいたいです。他のアクションについては、その逆も同様です。これを行う方法はありますか?redux-observableでは、レデューサーや叙事詩がアクションに最初に反応するかどうかを制御するにはどうすればよいですか?

+0

[specs](https://redux-observable.js.org/docs/basics/Epics.html)によると、epicsはリデューサーの後に*を実行します。あなたは何を達成しようとしていますか?データが変更されたときにアクションが発生するようにしますか? [この回答](https://stackoverflow.com/a/36558267/2764255)は、そのことについていくつかの洞察を提供しています。 –

+0

@NikosParaskevopoulos叙事詩では、私は約束を作成するアクションを派遣しています。約束が成立したとき、私は減刑者がそれを処理する前に別の訴訟を送りたい。私は、2番目のアクションがどのようにディスパッチされたかによって動作が異なるようにしたいので、これをやっています。 –

+0

@LeoJiangうーん、あなたがやろうとしていることははっきりしない。 「減速機が処理する前に別のアクションを送りたい」とはどういう意味ですか?たぶん、あなたが達成したいと思っていることを、あなたが達成しようとしているのではなく、すなわち、「これは、第2のアクションが、どのようにそれが派遣されたかによって異なる挙動をしたいので、これをやっている」というものである。これまで提供されている情報では、これはすべて奇妙な要求のように思えます。 – jayphelps

答えて

3

私が見る限り、これを変更することはできません。レデューサーは常に最初に実行されます。 relevant chunk of redux-observableは次のとおりです。

return action => { 
    const result = next(action); 
    input$.next(action); 
    return result; 
    }; 

ミドルウェアは常にので、それが減速に到達させ、第1パイプラインの次のミドルウェアへのアクションを渡します。その返品の後でさえ、それは叙事詩にアクションを供給します。 Redux-Sagaはまったく同じことをします。

+2

これに追加するには、epicsが* reducersの後に*実行する[指定された](https://redux-observable.js.org/docs/basics/Epics.html)です:* "Epicsは通常のReduxディスパッチチャネル、減速者がすでにそれらを受け取った後[...] "*。 –

0

減速機の前に叙事詩を実行させたい場合は、2つの動作を行います。

アクションA:これをアプリで送信し、叙事詩で見てください。必要に応じて減速機で何もしないでください。

アクションB:アクションAが適切な条件を満たす場合は、これをEpicで送信してください。減速機でこれを処理してください。

関連する問題