我是初学者,从教程中学习 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/