如何解决角卫队检查路线是否有状态
我有一个可以像这样导航的组件
this.router.navigate(['results'],{ state });
一旦到达那里,我就可以在构造器中获取数据
constructor(private router: Router) {
const { state } = this.router.getCurrentNavigation().extras;
}
我想放一个警卫来检查此数据是否存在,否则导航到其他地方
@Injectable()
export default class RouteHasDataGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot): boolean {
return !!state.root.data;
}
}
但是这不起作用。你能帮我吗?
解决方法
您可以访问以下状态:
@Injectable()
export default class RouteHasDataGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot): boolean {
return !!window.history.state;
}
}
,
不要在保护构造函数中阅读额外内容。阅读 canActivate() 方法中的额外内容。
@Injectable()
export default class RouteHasDataGuard implements CanActivate {
constructor(private router: Router) {}
canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot): boolean {
const { state } = this.router.getCurrentNavigation().extras;
return !!state.root.data;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。