バックグラウンド
私の店のレデューサーの 1 つは、アプリ内で選択されたものを処理します。このストア ( と呼びましょうapp
) のインターフェースは次のようになります。
interface IApp {
selectedProject: IProject;
selectedPart: IPart;
}
したがって、別の「プロジェクト」が選択された場合にのみアクションを実行するサブスクリプションが必要です。私はこのようなものを書きました:
this.store.select('app')
.map((store: IApp) => store.selectedProject)
.subscribe((project: IProject) => {
// Stuff happens here
});
この関数は、selectedProject
変更時に処理を行います。ただし、selectedPart
変更時にも処理を行います。明らかにapp
、マップに関係なく、ストア全体をリッスンします。それは理にかなっている。
質問
私はこれが起こることを望んでいません。変更時にのみ関数を実行したいselectedProject
。
これを解決するために、別のストアにselectedProject
分割できることを知っています。selectedPart
しかし、すぐに非常に多くの店舗ができてしまいます。たぶん、これが意図された方法ですか?
別の方法はありますか?selectedProject
このインターフェイスを使用してストアを保持し、ストアの一部の変更のみを検出するサブスクリプションを持つことはできますか?