angular - [Angular][Store] 将服务注入另一个服务的问题
问题描述
我有以下问题。我创建了一个服务——我们称之为 CopyService。我正在将 Store 注入其中。
@Injectable({
providedIn: 'root'
})
export class CopyService {
constructor(
private copyStore: Store<fromCopyStore.CopyState>,
) {
//something going on with the store
}
}
进一步,我将 CopyService 注入 MenuService
@Injectable({
providedIn: 'root'
})
export class MenuService {
constructor(private copyService: CopyService) {
// something going on with the copyService
}
}
最后,MenuService 被注入到一个组件中:
export class Component implements OnInit {
constructor(
private store: Store<fromRoot.State>,
private menuService: MenuService,
) {
}
ngOnInit() {
// something going on with the menuService
}
}
仅为实际代码的草稿道歉,但我不确定我能实际展示多少。无论如何,问题是我得到一个 StaticInjectorError(AppModule)[Component -> Store] No provider for Store!
我似乎可以找到问题的根源。CopyService 当然列在我的应用程序的 MainModule 的提供程序部分。
@NgModule({
imports: [
StoreModule.forRoot(reducers, {})
],
providers: [CopyService],
entryComponents: [
//entry components
],
declarations: [
//declarations
]
})
export class MainModule { }
我正在深入研究 Angular 的依赖注入,但到目前为止,还没有任何路线可以为我指明解决这个问题的正确方向。
提前非常感谢!
解决方案
您应该在模块中导入商店。