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

nullinjectorerror no provider for store if importing the store module from a child module

在我的 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 错误。

对于任何其他你需要使用 root 的模块 forFeature 我想 app.module' store 应该用你写的代码初始化。

@NgModule({
  declarations: [

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

您的某些服务可能通过

导入商店
import { Store } from '@ngrx/store/src/store'

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

确保导入是从

import { Store } from '@ngrx/store'

如果一切正常,可能是商店定义有问题。请通过 stackblitz 或其他方式分享您的 app.module.tscore.module.ts 代码。这样我们就可以解决问题了。