【发布时间】:2022-01-09 08:41:36
【问题描述】:
我试图通过提供应该注入ngrx存储的工厂函数来覆盖默认角度ErrorHandler:
import { ErrorHandler } from "@angular/core";
[...]
{
provide: ErrorHandler,
useFactory: (store: Store<AppState>) => {
return Sentry.createErrorHandler({
showDialog: true,
dialogOptions: {},
});
},
deps: [Store],
},
但我得到循环依赖错误:
main.ts:42 Error: NG0200: Circular dependency in DI detected for Store. Find more at https://angular.io/errors/NG0200
at throwCyclicDependencyError (core.js:216)
at R3Injector.hydrate (core.js:11434)
at R3Injector.get (core.js:11257)
at injectInjectorOnly (core.js:4751)
at ɵɵinject (core.js:4755)
at injectArgs (core.js:4832)
at Object.factory (core.js:11522)
at R3Injector.hydrate (core.js:11438)
at R3Injector.get (core.js:11257)
at injectInjectorOnly (core.js:4751)
如何省略这个问题?我需要提供从商店到创建错误处理程序的工厂函数 (Sentry.createErrorHandler)。
【问题讨论】:
-
您是否尝试过注入
Injector而不是Store?然后,如果我没记错的话,你可以使用injector.get(Store)获取商店。