При выходе из системы конфликт между router.navigate и breadcrumb - PullRequest
0 голосов
/ 29 октября 2019

Когда я выхожу из системы, authToken удаляется из localStorage, но я получаю сообщение в консоли, что я был перенаправлен на хлебную крошку, и когда я снова вхожу в систему, компоненты отображаются дважды в консоли при навигации.

Проблема с хлебной крошкой связана с this.router.navigate (['/ login']);

// To logout
  logout() {
    localStorage.removeItem('currentUser');
    this.router.navigate(['/login']);
  }

// Breadcrum problem

  this.router.events
      .pipe(filter(event => event instanceof NavigationEnd))
      .pipe(map(() => this.route))
      .pipe(map((route) => {
        while (route.firstChild) { route = route.firstChild; }
        return route;
      }))
      .pipe(filter(route => route.outlet === PRIMARY_OUTLET))
      .subscribe(route => {

        const snapshot = this.router.routerState.snapshot;
        this.breadcrumbs = [];
        const url = snapshot.url;
        const routeData = route.snapshot.data;

        console.log(routeData);
        const label = routeData.breadcrumb;
        const params = snapshot.root.params;

        this.breadcrumbs.push({
          url,
          label,
          params
        });

      });

...