Angular 注销时router.navigate和breadcrumb之间发生冲突
当我注销时,authToken将从本地存储中删除,但我在控制台中收到一条消息,表明我已重定向到面包屑,当我再次登录时,当我导航时,控制台中会显示两次组件 面包屑有问题。router.navigate(['/login'])Angular 注销时router.navigate和breadcrumb之间发生冲突,angular,authentication,local-storage,logout,Angular,Authentication,Local Storage,Logout,当我注销时,authToken将从本地存储中删除,但我在控制台中收到一条消息,表明我已重定向到面包屑,当我再次登录时,当我导航时,控制台中会显示两次组件 面包屑有问题。router.navigate(['/login']) 哪些部件?你能把路由器的路由添加到问题中吗?我自己解决了这个问题。原因是我在仪表板中多次订阅了一个事件。每次初始化组件时,都会创建一个新的订阅服务器。我的解决方案:使用Ngondestory,只需使用unsubscribe:)取消订阅即可。哪些组件?你能把路由器的路由添加到问
哪些部件?你能把路由器的
路由添加到问题中吗?我自己解决了这个问题。原因是我在仪表板中多次订阅了一个事件。每次初始化组件时,都会创建一个新的订阅服务器。我的解决方案:使用Ngondestory,只需使用unsubscribe:)取消订阅即可。哪些组件?你能把路由器的路由添加到问题中吗?我自己解决了这个问题。原因是我在仪表板中多次订阅了一个事件。每次初始化组件时,都会创建一个新的订阅服务器。我的解决方案:使用Ngondestory,只需使用unsubscribe:)取消订阅即可
// 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
});
});