nullinjectorerror如果从子模块导入商店模块,则没有商店提供程序

时间:2020-07-21 08:16:17

标签: angular ngrx ngrx-store

在我的app.module.ts文件中,我开设了一家商店:

imports: [
  StoreModule.forRoot(
    { soundtrackState: soundtrackReducer }
  ),
  EffectsModule.forRoot(
    [
      // SoundtrackEffects TODO add some effects
    ]
  ),
  StoreDevtoolsModule.instrument({ maxAge: 15, logOnly: environment.production }),    
  CoreModule,

现在,如果我将此代码移出并移到core.module.ts文件中,则会收到nullinjectorerror no provider for store错误。

2 个答案:

答案 0 :(得分:0)

对于您需要使用forFeature的其他所有以root为根的模块,我想app.module的存储区应该使用您编写的代码进行初始化。

@NgModule({
  declarations: [

  ],
  imports: [
    EffectsModule.forFeature(groupModuleEffects),
    StoreModule.forFeature(GROUPS_FEATURE_NAME, groupModuleReducers),
    StoreDevtoolsModule.instrument({ maxAge: 25, logOnly: environment.production }),
    SharedModule
  ],
  providers: []
})
export class GroupsModule {}

答案 1 :(得分:0)

您的某些服务可能通过以下方式导入了商店

import { Store } from '@ngrx/store/src/store'

import { Store } from '@ngrx/store/store'

确保导入是从导入的,

import { Store } from '@ngrx/store'

如果一切正常,则商店定义可能存在问题。请通过堆栈闪电或其他方式共享您的app.module.tscore.module.ts代码。这样我们就可以解决问题。