2017-02-16 20 views
0

、アクションの作成者は、2つの合成減速状態を変更したい場合組み合わせる減速ベストプラクティスReduxので

。 次に、何が良いですか:

  1. アクション作成者は2つのアクションタイプをディスパッチしますか?
  2. アクション作成者が1つのアクションタイプをディスパッチし、2つのリデューサーがそのアクションをリッスンしますか?
  3. 私は、リデューサー(すなわち、反応ルータの減速器)にアクションをサブスクライブできないときは、私のリデューサーアクションをディスパッチし、サンクやサガを使用した副作用として

あなたはどう思いますか?

+1

"two states"という語句は混乱します。ストアには1つの状態しかありません。状態ツリーの2つのプロパティを意味しますか?または、あなたのアプリに2つの店舗がありますか? –

+0

私は通常、後で約理由を混同することがない限り、#2と一緒に行きます。しかし、これは、あなたがレデューサーを正しく分割していない兆候である可能性があります。 –

答えて

1

実行可能なアプローチです。 ReduxのFAQは"Should I dispatch multiple actions in a row from one action creator?"の下にこれを対処します

一般に

、これらのアクションは、関連するが独立しているかどうか尋ねるか、実際には1つのアクションとして表現されなければなりません。自分の状況に合ったものを作ってください。しかし、減速機の可読性と行動ログの読みやすさとのバランスを取ろうとします。例えば、新しい状態ツリー全体を含むアクションは、あなたのレデューサーを1ライナーにしますが、今や、変化が起こっている理由の歴史がないので、デバッグは本当に困難になります。一方、ループ内でアクションを発生させて細分化している場合は、別の方法で処理される新しいアクションタイプを導入したいという兆候です。

また、私の記事Idiomatic Redux: Thoughts on Thunks, Sagas, Abstraction, and Reusabilityのトピックも取り上げました。

関連する問題