Uno dei riduttori nelle mie offerte negozio con le cose che vengono selezionati all'interno della app. L'interfaccia di questo negozio (diciamo chiamavano app
) potrebbe apparire come segue:
interface IApp {
selectedProject: IProject;
selectedPart: IPart;
}
Quindi io voglio avere un abbonamento che esegue un'azione solo quando si seleziona un 'progetto' diverso. Ho scritto qualcosa di simile:
this.store.select('app')
.map((store: IApp) => store.selectedProject)
.subscribe((project: IProject) => {
// Stuff happens here
});
Questa funzione fa cose quando selectedProject
modifiche. Tuttavia, lo fa anche quando cambia selectedPart
. Chiaramente, ascolta l'intero negozio app
, indipendentemente dalla mappa. Ciò ha senso.
Domanda
non voglio che questo accada. Voglio solo che la mia funzione venga eseguita quando le modifiche sono selectedProject
.
So che posso dividere selectedProject
e selectedPart
in diversi negozi per risolvere questo. Tuttavia, potrei finire rapidamente con molti, molti negozi. Forse questo come dovrebbe essere?
C'è un altro modo però? Posso mantenere il negozio con questa interfaccia e avere un abbonamento che rileva solo le modifiche alla parte dello store selectedProject
?
sì! questo è esattamente quello che stavo cercando. Grazie. – freethebees