【问题标题】:Alternative to forwardRef in newer Angular versions?在较新的 Angular 版本中替代 forwardRef?
【发布时间】:2017-06-20 10:59:22
【问题描述】:

我正在尝试将一个旧项目更新到最新版本的 Angular,我发现这一行

constructor(@Inject(forwardRef(() => MapComponent)) private map: MapComponent) {}

导致应用卡在Loading...

TSLint 还给了我以下信息:

避免在类中使用 forwardRef() (no-forward-ref)。

如何重写这个构造函数?

【问题讨论】:

  • 不能跳过吗? (如果您已添加为提供者)constructor(private map: MapComponent) {
  • @FredrikLundin 我能做到吗?如果我跳过它,我需要在其他地方更改代码吗?
  • 试试看 - 它应该可以在没有 forwardRef 的情况下工作。如果是,请告诉我,我会将其添加为答案
  • @FredrikLundin 它不能解决问题。当我删除 forwardRef 时,似乎有些事情正在发生变化
  • @FredrikLundin 代码不是我的,而且写得不好,我会接受 Dean 的回答并尝试根据该信息找到解决方案。

标签: angular angular2-components


【解决方案1】:

听起来您在注入设置中有循环依赖。 forwardRef 可以解决其中一些类型的问题,因为类没有被提升,这可能会导致某些类型实例解析错误。您收到 tslint 错误,因为样式指南建议您重组应用程序,使其不存在依赖关系解析问题,而不是依赖 forwardRef

如果有人在您的代码前面添加了forwardRef,那么这可能是有原因的——因此删除它可能会给您带来不同的错误。 我会尝试在代码中提升 MapComponent,然后删除 forwardRef 声明 - 因为我怀疑其他一些问题是此实例中停滞引导的根源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2016-12-06
    相关资源
    最近更新 更多