angular - 在较新的 Angular 版本中可以替代forwardRef吗?

标签 angular angular2-components

我正在尝试将旧项目更新到最新版本的 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/

相关文章:

html - 如何更改 Angular 2 中下载的子组件的 css 样式?

Angular ( typescript ): How to scroll to selected element by class

angular - Concat 可观察对象

javascript - 如何将获取的API的一部分添加到组件定义的数组中

typescript - 如何隐藏和替换 Angular2 中的组件

angular - 如何将 NgRx 8 操作与 NgRx 7 reducer 一起使用

javascript - 在 Angular 2 中使用 routerLinkeActive 时出现未定义的根错误

typescript - 如何在角度2的输入文本变化时调用函数

angular - 组件可以调用自毁事件吗

angular - 没有ManagedZone的提供者