Redux: サブスクライブリスナーはアクションパラメータを取得できますか?

作成日 2015年11月19日  ·  3コメント  ·  ソース: reduxjs/redux

サブスクライブがアクションを取得できない理由次のことが良いアイデアかどうかわかりません

listeners.slice().forEach(listener => listener())
//to
listeners.slice().forEach(listener => listener(action))
discussion

最も参考になるコメント

サブスクライバーは、何が起こったかではなく、新しい状態に反応する必要があります。
これは、一貫性を確保するために重要です。
カスタムミドルウェアを使用して回避できます。

見てください:

https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580

全てのコメント3件

サブスクライバーは、何が起こったかではなく、新しい状態に反応する必要があります。
これは、一貫性を確保するために重要です。
カスタムミドルウェアを使用して回避できます。

見てください:

https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580

私の場合、アクションは「ディスパッチ」が実行された後にサーバーに送信されます。 サーバーにはクライアントと同じReduxストアがあり、アクションはサーバーの状態を変更してクライアントの状態と同期します。
この場合、「サブスクライブリスナー」にアクションパラメータを指定すると便利です。

もちろん、これはミドルウェアを使用して実現できます。 ただし、これが「サブスクライブリスナー」のデフォルトの方法である方がよい場合があります。

サーバーとクライアントで同じReduxストアを準備することにより、サーバー側の状態操作はクライアントと同じになります。

この概念では、アクションは、サーバーを含む接続されているすべてのクライアント間で転送される状態シンクロナイザーです。

これはまさにミドルウェアのユースケースです。

このページは役に立ちましたか?
0 / 5 - 0 評価