如果从子模块导入商店模块,则 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.ts
和 core.module.ts
代码。这样我们就可以解决问题了。
在我的 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.ts
和 core.module.ts
代码。这样我们就可以解决问题了。