web-dev-qa-db-ja.com

React Reduxの複数のミドルウェアの順序

複数のミドルウェア(たとえば3つ)があり、すべてが1つのアクションをキャッチしている場合はどうなりますか?ストアの作成で定義された順序でトリガーされますか?

createStore(reducer,applyMiddleware(middle1, middle2, middle3));

middle1が最初にトリガーされ、次にmiddle2、次にmiddle3がトリガーされますか? (next()を呼び出す場合)特定のアクションでmiddle3をmiddle2の前に呼び出すことはできますか?

12
Nevosis

ミドルウェアパイプラインは、applyMiddleware()に渡した順序と完全に一致します。したがって、その例では:

  • store.dispatch()を呼び出すと、アクションがmiddleに渡されます。
  • _middle1_がnext(action)を呼び出すと、_middle2_に移動します。
  • _middle2_がnext(action)を呼び出すと、_middle3_に移動します。
  • _middle3_がnext(action)を呼び出すと、実際のストアに移動し、レデューサーロジックが実行されます。

いいえ、ストアの作成後にミドルウェアを再注文することはできません。

20
markerikson