此错误使我无法自拔。我有一个authguard服务,如下所示。无论我做什么,编译器都会不断给我这个错误
'
Either add the @Injectable() decorator to 'AuthGuard', or configure a different provider (such as a provider with 'useFactory').
'
@Injectable({ providedIn: 'root' })
export class AuthGuard implements CanActivate {
constructor(private myService: MyService,
private router: Router)}
并且我正在我的app.module中实现它
providers: [
AuthGuard
]
bootstrap: [AppComponent]
})
export class AppModule { }
我显然在Authguard类之上具有可注射装饰器,但仍然收到此错误。这仅在我从Angular 8升级到9.1时发生这是VS Code或编译器之类的错误吗?
您正在2个地方注册相同的依赖项
首先是@Injectable({ providedIn: 'root' })
您正在向根注入器注册。
第二个在下面,您正在重新注册,这是您出错的原因。
providers: [
AuthGuard
]
只需将其从提供者数组中删除,它将解决您的问题。