我正在尝试将旧项目更新到最新版本的 Angular,我发现这一行
constructor(@Inject(forwardRef(() => MapComponent)) private map: MapComponent) {}
导致应用卡在正在加载...
。
TSLint 还给了我以下消息:
Avoid using forwardRef() in class (no-forward-ref).
如何重写这个构造函数?
最佳答案
听起来您的注入(inject)设置中有循环依赖。 forwardRef
可以解决其中一些类型的问题,因为类没有被提升,这可能会导致一些类型实例解析错误。您收到 tslint
错误是因为样式指南建议您重构应用程序,使其不存在依赖项解析问题,而不是依赖 forwardRef
。
如果有人在您的代码中较早添加了 forwardRef
,那么这可能是有原因的 - 因此删除它可能会给您带来不同的错误。
我会尝试在代码中提升 MapComponent,然后删除forwardRef 声明 - 因为我怀疑其他一些问题是此实例中停滞 Bootstrap 的根源
关于angular - 在较新的 Angular 版本中可以替代forwardRef吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44651189/