Angular 14报错:ViewUsersComponent的userService参数无合适注入令牌
问题修复方案
错误原因及修复步骤:
- 类型名大小写错误:构造函数中注入的服务类型写了小写的
userService,但你的实际服务类是大写开头的UserService(Angular服务遵循大驼峰命名规范),这导致了“找不到名称‘userService’”和注入令牌错误。必须将类型改为UserService,同时确保已经正确导入该服务。 - 参数拼写错误:构造函数里的
activatedRouted是拼写错误,应该改为activatedRoute,和组件中使用的变量名保持一致,否则ngOnInit中访问this.activatedRoute会出现未定义问题。 - 异步逻辑优化:原代码中
viewuser的调用在params订阅之外,由于params是异步的,可能导致调用时userId还是空值,建议将服务调用移到params的回调内部。
修正后的完整代码:
import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { UserService } from './path-to-user-service'; // 替换为你的UserService实际路径 export class ViewUsersComponent implements OnInit { userId: any = ''; constructor( private userService: UserService, private activatedRoute: ActivatedRoute ) { } ngOnInit(): void { this.activatedRoute.params.subscribe((data: { id: any; }) => { this.userId = data.id; // 确保拿到userId后再调用服务 this.userService.viewuser(this.userId).subscribe((data: any) => { console.log(data); }); }); } }
内容的提问来源于stack exchange,提问作者Shuvadeep
相关产品推荐
相关产品推荐

