首页 > 解决方案 > [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 的依赖注入,但到目前为止,还没有任何路线可以为我指明解决这个问题的正确方向。

提前非常感谢!

标签: angulardependency-injectionstorengrx

解决方案


您应该在模块中导入商店。

https://ngrx.io/guide/store#tutorial


推荐阅读