簡體   English   中英

NullInjectorError: StaticInjectorError(AppModule)[TranslateService -> TranslateStore]

[英]NullInjectorError: StaticInjectorError(AppModule)[TranslateService -> TranslateStore]

我有以下結構

app.module.ts

    @ngModule({
       imports: [
           // other imports
               SharedModule,
               TranslateModule.forRoot({ 
                   loader: { provide: TranslateLoader, useFactory: createTranslateLoader, deps: [HttpClient] } 
                })
       ],
       providers: [
           // other providers
           TranslateService
       ]
    })

    export class AppModule { }

共享模塊.ts

@ngModule({
   declarations: [MyComponent]
   imports: [
       // other imports
           AnotherComponentModule,
           TranslateModule.forChild()
   ],
   exports: [MyComponent]
})

export class SharedModule { }

使用此設置,我收到錯誤

錯誤 NullInjectorError: StaticInjectorError(AppModule)[TranslateService -> TranslateStore]: StaticInjectorError(Platform: core)[TranslateService -> TranslateStore]: NullInjectorError: No provider for TranslateStore!

從 Angular 6 遷移到 Angular 8 時,錯誤開始出現。

該錯誤不會出現在該AnotherComponentModule內的組件中,所以不知何故它只出現在直接在SharedModule聲明的SharedModule

當我將 MyComponent 放在它自己的模塊中並將其導入 sharedModule 時,事情就開始工作了。

我曾嘗試將TranslateServiceTranslateStore添加到SharedModule以及包含使用MyComponent的組件的模塊,但它沒有工作。

我有同樣的問題。

您需要在 app.module 中導入 HttpClientModule

嘗試這個:

   @ngModule({
   imports: [
           HttpClientModule
           SharedModule,
           TranslateModule.forRoot({
            loader: {
              provide: TranslateLoader,
              useFactory: HttpLoaderFactory,
              deps: [HttpClient]
            }
          })
   ],
   providers: []
   })

export class AppModule { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM