Angular 依赖注入错误消息:ERROR Error NullInjectorError No provider for XX

发布时间 2023-03-30 14:00:31作者: JerryWang_汪子熙

错误消息 ERROR Error: NullInjectorError: No provider for CustomI18nConfigInitializer! 应该如何处理?

我已经在 AppModule 里编写了如下代码啊:

{ 
      provide: CONFIG_INITIALIZER,
      useExisting: CustomI18nConfigInitializer,
      multi: true
    }

解决思路

在 Angular 应用中,出现 ERROR Error NullInjectorError No provider for XX 错误通常表示未在注入器中提供所需的依赖项。

具体而言,这个错误消息意味着某个组件、指令、服务等需要依赖于 XX 类型的对象,但注入器无法找到 XX 的提供者。

以下是解决这个错误的一些可能的方法:

  1. 添加提供者:在使用依赖项的组件、指令、服务等中添加一个提供者,该提供者能够提供 XX 的实例。例如,如果依赖项是一个服务,则可以在该服务的注入器元数据中添加提供者:
import { Injectable } from '@angular/core';
import { XX } from './xx';

@Injectable({
  providedIn: 'root',
  // 添加提供者
  providers: [XX]
})
export class MyService {
  constructor(private xx: XX) { }
}

  1. 导入提供者:如果提供者已经存在,但未被导入到当前文件中,那么可以通过导入提供者来解决该问题:
import { Component } from '@angular/core';
import { XX } from './xx';

@Component({
  selector: 'my-component',
  template: `<h1>My Component</h1>`
  // 导入提供者
  providers: [XX]
})
export class MyComponent {
  constructor(private xx: XX) { }
}

  1. 确认提供者:确保 XX 类型的提供者已经被正确地添加到应用程序的模块、组件或指令中,并且其名称拼写和路径正确。

  2. 确认依赖:确保代码中使用 XX 的组件、指令、服务等已经正确地注入到了需要 XX 的地方。

这些方法可以帮助你解决 ERROR Error NullInjectorError No provider for XX 错误。如果仍然无法解决问题,可以考虑查看应用程序的其他代码,或者尝试在搜索引擎上搜索相关的解决方案。