7

我有一个使用 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我的模块。

4

1 回答 1

17

以下是我解决问题的方法:

我导入了以下内容:

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

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

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

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

于 2018-05-10T01:31:57.510 回答