Angular 錯誤訊息:ERROR Error NullInjectorError No provider for XX

JerryWang_汪子熙發表於2023-04-02

錯誤訊息 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 錯誤。如果仍然無法解決問題,可以考慮檢視應用程式的其他程式碼,或者嘗試在搜尋引擎上搜尋相關的解決方案。

相關文章