SAP Spartacus NullInjectorError: No provider for CmsComponentData
SAP Spartacus NullInjectorError: No provider for CmsComponentData
我正在尝试获取自定义组件的组件数据。
private componentData$: Observable<CmsBannerCarouselComponent> = this.componentData.data$.pipe(
filter(Boolean),
tap((d: CmsBannerCarouselComponent) => (console.log("++++++++++++++++++++++++++",d)))
);
我收到以下错误:
core.js:4197 ERROR NullInjectorError: R3InjectorError(AppModule)[CmsComponentData
-> CmsComponentData -> CmsComponentData]:
NullInjectorError: No provider for CmsComponentData!
谁能帮我解决这个问题?
如果在构造函数中使用CmsComponentData
,则必须提供。当 CMS 组件放置在页面上时,这就是 Spartacus 正在做的事情;在动态创建组件时,在该组件的注入器中组合并提供数据对象。
CmsComponentData
是一个抽象 class,因此如果您添加组件而不注入具体 class,您将面临此错误。
我们最近看到一个想要将组件分配给路由的开发人员。这是一个示例,其中 Angular 将尝试从 DI 系统中获取具体的 class,但除非您自己执行此操作,否则 Spartacus 中没有任何内容。
我也遇到了这个错误。当您尝试在 app.component.html 中添加自定义组件时会发生这种情况,这不是必需的,因为这些组件是通过 ConfigModule 映射的。所以把自定义组件的标签去掉app.component.html就可以了
我正在尝试获取自定义组件的组件数据。
private componentData$: Observable<CmsBannerCarouselComponent> = this.componentData.data$.pipe(
filter(Boolean),
tap((d: CmsBannerCarouselComponent) => (console.log("++++++++++++++++++++++++++",d)))
);
我收到以下错误:
core.js:4197 ERROR NullInjectorError: R3InjectorError(AppModule)[CmsComponentData
-> CmsComponentData -> CmsComponentData]:
NullInjectorError: No provider for CmsComponentData!
谁能帮我解决这个问题?
如果在构造函数中使用CmsComponentData
,则必须提供。当 CMS 组件放置在页面上时,这就是 Spartacus 正在做的事情;在动态创建组件时,在该组件的注入器中组合并提供数据对象。
CmsComponentData
是一个抽象 class,因此如果您添加组件而不注入具体 class,您将面临此错误。
我们最近看到一个想要将组件分配给路由的开发人员。这是一个示例,其中 Angular 将尝试从 DI 系统中获取具体的 class,但除非您自己执行此操作,否则 Spartacus 中没有任何内容。
我也遇到了这个错误。当您尝试在 app.component.html 中添加自定义组件时会发生这种情况,这不是必需的,因为这些组件是通过 ConfigModule 映射的。所以把自定义组件的标签去掉app.component.html就可以了