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

时间:2018-05-10 00:57:09

标签: angular typescript ngrx yarnpkg 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导入我的模块。

1 个答案:

答案 0 :(得分:7)

以下是我在我的案例中解决问题的方法:

我导入了以下内容:

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

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

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

关键是检查缺少的提供商。 希望这有帮助!