NullInjectorError:使用ng-packagr时没有StateObservable的提供程序

Joe*_*rdi 3 typescript ngrx yarnpkg angular ng-packagr

我有一个使用ngrx / store的Angular 5项目。该项目由一个应用程序和该应用程序使用的共享库组成。直到今天,我们一直在为两个项目一起编译TypeScript-仅使用TypeScript代码来“发布”该库。

今天,我使用了该库,ng-packagr并使用将该库引入了应用程序yarn link,以便可以运行本地代码。但是,当我尝试启动我的应用程序时,在浏览器中出现此错误:

Unhandled Promise rejection: StaticInjectorError(AppModule)[Store -> StateObservable]: StaticInjectorError(Platform: core)[Store -> StateObservable]: NullInjectorError: No provider for StateObservable! ; Zone: <root> ; Task: Promise.then ; Value: Error: StaticInjectorError(AppModule)[Store -> StateObservable]: StaticInjectorError(Platform: core)[Store -> StateObservable]: NullInjectorError: No provider for StateObservable! at _NullInjector.get (core.js:1002) at resolveToken (core.js:1300) at tryResolveToken (core.js:1242) at StaticInjector.get (core.js:1110) at resolveToken (core.js:1300) at tryResolveToken (core.js:1242) at StaticInjector.get (core.js:1110) at resolveNgModuleDep (core.js:10854) at _createClass (core.js:10895) at _createProviderInstance$1 (core.js:10865)

我不知道这是错误的来源。我唯一的提示是它提到了AppModule。在我的中AppModule,我正在导入@ngrx/store并导入StoreModule.forRoot我的模块。

Ruk*_*lla 9

这是我针对此问题解决的方法:

我导入了以下内容:

import { Store } from '@ngrx/store';
import { StoreModule } from '@ngrx/store';
Run Code Online (Sandbox Code Playgroud)

我在导入中将商店模块添加为: imports: [StoreModule.forRoot({}),............

然后,我将商店服务添加到提供者: providers: [Store]

关键是检查缺少的提供程序。希望这可以帮助!