【问题标题】:NullInjectorError: No provider for StateObservable when using ng-packagrNullInjectorError:使用 ng-packagr 时没有 StateObservable 的提供者
【发布时间】:2018-05-10 00:57:08
【问题描述】:

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

【问题讨论】:

  • 通常在缺少提供程序时抛出 StaticInjectorError。你检查你所有的依赖注入都有相关的提供者吗?

标签: angular typescript ngrx yarnpkg ng-packagr


【解决方案1】:

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

我导入了以下内容:

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

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

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

关键是检查缺失的提供者。 希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 2021-12-15
    • 2019-11-16
    • 2021-01-20
    • 2019-06-25
    • 2018-09-19
    • 2018-05-02
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多