В Angular 8 приложении у меня есть компонент Layout:
import { Component, OnInit } from '@angular/core';
import { tap, takeUntil } from 'rxjs/operators';
import { Store } from '@ngrx/store';
import { UserService } from '../../../shared/services';
import { AppState } from '../../../app.state';
import { GetUser } from '../../../store/actions/user.action';
import { SafeComponent } from '../../../shared/helpers';
@Component({
selector: 'wd-layout',
templateUrl: './layout.component.html',
styleUrls: ['./layout.component.scss']
})
export class LayoutComponent extends SafeComponent implements OnInit {
public loading: boolean;
constructor(
private readonly store: Store<AppState>,
private readonly userService: UserService,
) {
super();
this.userService.user$.pipe(
takeUntil(this.unsubscriber),
tap((x: any) => this.loading = x.loading === true)
).subscribe();
}
ngOnInit() {
this.store.dispatch(new GetUser());
}
}
С внедренным SafeComponent:
import { OnDestroy } from '@angular/core';
import { Subject } from 'rxjs';
export abstract class SafeComponent implements OnDestroy {
protected unsubscriber: Subject<{}> = new Subject();
ngOnDestroy(): void {
this.unsubscriber.next()
this.unsubscriber.complete()
}
}
И когда я покидаю этот макет и вводю другой, с та же реализация SafeComponent
, у меня эта ошибка в консоли каждый раз, когда я переключаюсь с одного на другое:
Это говорит о том, что проблема в logo.component
, но это просто простой компонент с одной ссылкой без какой-либо логики c, я полагаю, он винит в этом go компонент, потому что я переключаюсь между представлениями, когда нажимаю на него.