I am using ionic 4.1 with ngrx. I have a user selector on Page A and Page b both.
export class ComponentA implements OnInit, OnDestroy {
private readonly ngUnsubscribe: Subject<void> = new Subject<void>();
user:any;
constructor(
private readonly store: Store<AppState>,
) { }
ngOnInit(){}
ionViewWillEnter(): void {
this.store.select(getUserState)
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe((user) => {
this.user = user;
});
}
ionViewWillLeave(): void {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
getUserState.release();
}
Same subscriptions on page b , when i move from page a to b unsubscribe works but then when i move from b to a and then a to b … subscription on page a doesn’t get unsubscribe. If you traverse back 5 times 5 subscription remains on page a.Both pages get notification. I know in ionic previous page remains in stack so onDestroy() never gets called on forward navigation that is why i have put in subscription and unsubscription in ionic lifecyle hooks.
Not sure if i am not subscribing the right way or missing something. This is giving me hard time.
Please suggest how to fix this . Thanks in advance.