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
我的模块。
这是我针对此问题解决的方法:
我导入了以下内容:
import { Store } from '@ngrx/store';
import { StoreModule } from '@ngrx/store';
Run Code Online (Sandbox Code Playgroud)
我在导入中将商店模块添加为: imports: [StoreModule.forRoot({}),............
然后,我将商店服务添加到提供者: providers: [Store]
关键是检查缺少的提供程序。希望这可以帮助!