我是初学者,从教程中学习 Angular,因为我遵循这些教程,当我实现接口(interface) CanAcivate 就像他在教程中所做的那样显示错误

类“AuthGaurd”错误地实现了接口(interface)“CanActivate”。
“AuthGaurd”类型中缺少“canActivate”属性,但“CanActivate”类型中需要。ts(2420)


这是 Canactivate 的实现

export class AuthGaurd implements CanActivate
{
  constructor(private auth: AuthService, private router: Router) { }
  CanActivate(){
    return this.auth.user$.map(user => {
      if (user) return true;
      this.router.navigate(['/login']);
      return false;
    });
  }
}`

这是进口
 import { Injectable } from '@angular/core';
    import { AuthService } from './auth.service';
    import { CanActivate } from '@angular/router/src/utils/preactivation';
    import { Router } from '@angular/router';
    import 'rxjs/add/operator/map';

我将导入从 import { CanActivate } from '@angular/router/src/utils/preactivation'; 更改为 import { CanActivate } from '@angular/router; But not work
我还在 canActivate 中添加了以下内容,因为我在 StackOverflow 上观看了一个答案,但它对我也不起作用
 CanActivate(next: ActivatedRouteSnapshot,
 state: ActivatedRouteSnapshot): Observable<boolean>

最佳答案

注意 canActivate 函数的驼峰式大小写,并使用必要的参数来实现该函数。

关于angular - 'AuthGaurd' 类错误地实现了接口(interface) CanActivate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54900094/

10-16 11:49