У меня простой эффект:
@Effect()
simpleEffect = this.actions.pipe(
ofType<ActionA>('Action A'),
withLatestFrom(this.store.select(selectSomething)),
map(([action, something]) => console.log('CALLED TWICE'))
);
Вот селектор:
export const selectSomething = createSelector(
(appState) => appState.someState,
(someState) => someState.something
)
Ниже приведен простой редьюсер, который обновляет значение something
:
export const someReducer = (state: SomeState = someInitialState, action: ActionB) => {
switch (action.type) {
case 'Action B':
return {
...state,
something: action.payload
};
default:
return state;
}
};
Эта проблема:
Когда я отправляю ActionB, вызывается эффект для ActionA, несмотря на то, что это не так.
Как я выяснил, это происходит из-за withLatestFrom(this.store.select(selectSomething))
в эффекте, который следит за любыми изменениями something
НАВСЕГДА.
Вопрос:
Можно ли отписаться от этого селектора? Или вместо withLatestFrom
есть другая функция?