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

问题描述 投票:0回答:1

我具有以下结构

app.module.ts

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

    export class AppModule { }

shared.module.ts

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

export class SharedModule { }

使用此设置,我得到了错误

ERROR NullInjectorError:StaticInjectorError(AppModule)[TranslateService-> TranslateStore]:StaticInjectorError(平台:核心)[TranslateService-> TranslateStore]:NullInjectorError:没有TranslateStore提供者!

从Angular 6迁移到Angular 8时开始出现错误。

该错误不会出现在AnotherComponentModule内部的组件中,因此仅在直接在SharedModule中声明的组件中才出现。

当我将MyComponent放入其自己的模块并将其导入sharedModule时,事情开始起作用。

我已经尝试将TranslateServiceTranslateStore添加到SharedModule以及包含使用MyComponent的组件的模块,但是它没有用。

javascript angular ngx-translate
1个回答
0
投票

您的翻译服务正在寻找翻译商店的提供者,但在任何地方都找不到,似乎您的进口商品有问题。您能否在您的shared.module.ts中共享其他导入内容,以便获得更多背景信息,从而指出问题所在?

© www.soinside.com 2019 - 2024. All rights reserved.