首页 > 解决方案 > Angular 库组件在服务提供者可注入时抛出错误

问题描述

我有一个库,其中有一个模块和两个组件。其中一个组件需要使用服务(并且传入了一个配置 - 在我将服务添加到构造函数之前它就工作了)。

ERROR Error: Uncaught (in promise): Error: This constructor was not compatible with Dependency Injection.
Error: This constructor was not compatible with Dependency Injection.
    at Module.ɵɵinvalidFactory (core.js:13777)
    at NodeInjectorFactory.QrCodeService_Factory [as factory] (qr-code.service.ts:26)
    at getNodeInjectable (core.js:4029)
    at searchTokensOnInjector (core.js:3965)
    at getOrCreateInjectable (core.js:3887)
    at Module.ɵɵdirectiveInject (core.js:13753)
    at NodeInjectorFactory.QrCodeComponent_Factory [as factory] (qr-code.component.ts:21)
    at getNodeInjectable (core.js:4029)
    at instantiateRootComponent (core.js:7826)
    at createRootComponent (core.js:18375)
    at resolvePromise (zone-evergreen.js:798)
    at resolvePromise (zone-evergreen.js:750)
    at zone-evergreen.js:860
    at ZoneDelegate.invokeTask (zone-evergreen.js:399)
    at Object.onInvokeTask (core.js:27425)
    at ZoneDelegate.invokeTask (zone-evergreen.js:398)
    at Zone.runTask (zone-evergreen.js:167)
    at drainMicroTaskQueue (zone-evergreen.js:569)

我错过了什么吗?

服务(QrCodeService)装饰有:

@Injectable({
  providedIn: 'any'
})

组件(QrCodeComponent)装饰有:

@Component({
  providers: [
    QrCodeService
  ]
})

以及组件的构造函数:

constructor(
  @Inject(QR_LIB_CONFIG) qrLibConfig,
  private qrCodeService: QrCodeService
)

标签: angularangular-componentsangular-libraryangular10angular-providers

解决方案


推荐阅读