I have an issue with my Angular 18 and Ionic 7 application, which uses NGRX Signal Store. During logout, I'm able to clear the localStorage and set the isAuthenticated and token states to false and undefined, with a redirection to the login page. However, when I try to log back in, although the authentication works correctly and the token is received, the withHooks in the store, which I instantiate in the HomeComponent, no longer triggers. I believe Ionic is keeping the previous page in the DOM. How can I destroy components upon logout? Ngrx Auth Signal Store : export const AuthenticationStore = signalStore( { providedIn: 'root' }, withState(initialValue), withComputed((store) => ({ isLogged: computed(() => store.isAuthenticated()), isNotLogged: computed(() => !store.token() || !store.isAuthenticated()), })), withMethods( ( store, infra = inject(AuthenticationInfrastructure), localInfra = inject(LocalStorageAuthenticationInfrastructure), router = inject(Router) ) => ({ localLogin(token: WithToken): void { if (token.access_token) { patchState(store, { isAuthenticated: true, token: { access_token: token.access_token, expires_in: 0, refresh_expires_in: 0, refresh_token: '', }, }); } }, logIn: rxMethod<AuthenticateType>( pipe( tap(() => patchState(store, { isLoading: true })), concatMap((input) => { return infra.login(input.login, input.password).pipe( map((tokenResponse) => { return { access_token: tokenResponse.access_token, expires_in: tokenResponse.expires_in, refresh_expires_in: tokenResponse.refresh_expires_in, refresh_token: tokenResponse.refresh_token, } as AuthenticationToken; }), tap((token) => localInfra.startSession({ access_token: token.access_token, refresh_token: token.refresh_token, }) ), tapResponse({ next: (token) => { patchState(store, { isLoading: false, isAuthenticated: true, token: token, }); const state = getState(store); console.log('Login State', state); }, error: () => { console.log('erreur login'); patchState(store, { isLoading: false }); }, }) ); }) ) ), logout: () => { patchState(store, { token: undefined, isLoading: false, isAuthenticated: false, }); const state = getState(store); localInfra.endSession(); router.navigate(['login'],{ replaceUrl: true }); }, }) ), withHooks({ async onInit( store, localInfra = inject(LocalStorageAuthenticationInfrastructure), router = inject(Router) ) { const session = await localInfra.getSession(); if (session.access_token) { store.localLogin(session); } // localInfra.getSession().then((token : WithToken ) => { // if (token) { // console.log(token) // store.localLogin(token); // } // }); }, }) ); HomeComponent : export class HomeComponent { constructor() { addIcons({ personCircle }); } // call to my UserhStore not AuthStore private readonly userApplication = inject(UserApplication); customer$$ = this.userApplication.user; segmentFilter = new FormControl('abilities'); } redirectToLoginEffect when im authenticate : export class AuthenticationApplication { private readonly store = inject(AuthenticationStore); private readonly router = inject(Router); private redirectToLoginEffect = effect(() => { if (this.store.isLogged()) { this.router.navigate(['tabs']); } }); I tried adding replace: true in the navigate method in my logout, but it doesn't work. Continue reading...