Я хочу подписаться на часть состояния в магазине ngrx и получать выбросы только тогда, когда эта конкретная часть состояния изменяется.
export const getMatchesState = (state: State) => state.matches;
export const getSpainMatches = createSelector(getMatchesState, (allMatches) => {
return Object.keys(allMatches.byId)
.filter(key => {
return allMatches.byId[key].tournamentId == '68';
}).map(key => allMatches.byId[key]);
});
при подпискена этот лайк
this.testSub = this.store.pipe(select(fromRoot.getSpainMatches))
.subscribe(s => console.log('@@@@', s));
Я получаю выбросы каждый раз при изменении любого совпадения из магазина, а не только при изменении совпадения в Испании.
Обновление:
Я тоже пробовал это:
export const getSpainMatches = createSelector(getMatchesState, (allMatches, props) => {
return Object.keys(allMatches.byId)
.filter(key => {
return allMatches.byId[key].tournamentId == props.tournamentId ;
}).map(key => allMatches.byId[key]);
});
this.testSub = this.store.pipe(select(fromRoot.getSpainMatches, {tournamentId: 68}))
.subscribe(s => console.log('@@@@', s));
Спасибо