簡體   English   中英

更新到 Angular 12 后未調用 CanActivate

[英]CanActivate not called after updating to Angular 12

我更新到 angular 12 並在開始時顯示白色/空白頁面。

這是因為我不再使用實現 CanActivate 的“RedirectGuard”中的 canActivate 方法。 這應該在路徑為空時發生。

我的路由:

const routes: Routes = [
{ 
  path: '', redirectTo: '', pathMatch: 'full' 
},
{
  path: 'login',
  loadChildren: () => import('./pages/login/login.module').then( m => m.LoginPageModule)
},
...

還有我的 RedirectGuard:

@Injectable({
  providedIn: 'root'
})
export class RedirectGuard implements CanActivate {
  constructor(
    private router: Router,
    private authStateQuery: AuthenticationStateQuery
    ) {}
    
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean> | Promise<boolean> | boolean {
      console.info('In RedirectGuard');
      
      if (this.authStateQuery.isLoggedIn()) {
        this.router.navigate(['/home']);
        return true;      
      }
      
      this.router.navigate(['/login']);
      return false;
    }
}

您的routes定義不包括對警衛的任何引用。

在路線上需要以下內容:

canActivate: [RedirectGuard]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM