Я создал небольшое приложение, которое позволяет пользователю входить и выходить из системы, используя состояние ngrx. Логин пользователя работает хорошо. Я могу войти в систему и с помощью AuthGuard я могу проверить, остается ли пользователь в системе после входа в систему после ссылки sh страницы. Теперь я должен выйти из системы. Это моё действие:
export const LOGOUT = '[Auth] Logout';
export const logout = createAction(
LOGOUT
);
чем эффект
logout$ = createEffect(() =>
this.actions$
.pipe(
ofType(userActions.logout),
tap(action => {
localStorage.removeItem('user');
this.router.navigate(['login']);
})
)
,{dispatch: false});
и нашего редуктора:
export const authReducer = createReducer (
defaultUser,
on(userActions.logout, (state, action) => {
return {
user: undefined
}
})
)
После этого я могу создать в своем компоненте кнопка выхода с этим
onLogout(){
this.store.dispatch(logout())
}
Я ожидаю, что диспетчер вызовет действие, а затем эффект. Внутри эффекта он должен удалить пользователя из localStorage. но даже если я попытаюсь отладить эффект, он не входит в оператор крана. Он не удаляет элемент и не перенаправляет на страницу входа. Я что-то еще здесь пропустил?