我有一个使用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
导入我的模块。
答案 0 :(得分:7)
以下是我在我的案例中解决问题的方法:
我导入了以下内容:
import { Store } from '@ngrx/store';
import { StoreModule } from '@ngrx/store';
我在导入中添加了商店模块:imports: [StoreModule.forRoot({}),............
然后我将商店服务添加到提供商:providers: [Store]
关键是检查缺少的提供商。 希望这有帮助!