web-dev-qa-db-ja.com

IVYを使用して@Inputデコレータをクエリデコレータに組み合わせることはできません

私はangular 7アプリを8.0.0に移行しました。

アプリはIVYなしで完璧に機能しますが、それを使用してコンパイルしようとすると、次のエラーがあります。

@Inputデコレータをクエリデコレータに組み合わせることはできません

行番号なし、ファイルなし、何もない...何もデバッグするのは難しい。

私はその直前に警告がありますが、それが関連しているかどうかわかりません。

エントリーポイントの「Angular-Tree-Component」の警告には、「Lodash/DefaultsDeep」、 'Lodash/omit'、 'Lodash/Isnumber'、 'Lodash/First'、 'Lodash/Last'への深い輸入が含まれています。 、 'Lodash/Compery'、 'Lodash/Compact'、 'Lodash/Isstring'、 'Lodash/Isfunction'、 'Lodash/Throttle'、 'Lodash/Isfunctle'、 'Lodash/Throttle'ロドッキー/ピック。これはおそらく問題ではありませんが、エントリポイントのコンパイルが順不同になる可能性があります。

何か案は ?

9
grunk

へのアップグレードAngular 9私に同じエラーが発生しました、このエラーの責任あるコード)は次のとおりです。

_@Input() @ContentChild(Component) actions: Component;
_

問題は、@Input()と_@ContentChild_を組み合わせることができないので、エラーの責任のあるコードを次のように置き換えました。

_get actions(): Component {
  return this._actions;
}

private _actions: Component;

@Input()
set actions(value: Component) {
  this._actions = value;
}

@ContentChildren(Component)
set viewActions(value: Component) {
  if (!this._actions && value) {
    this._actions = value;
  }
}

_
1
Stefano Borzì

私の問題は、私が誤って以下のように複数のクエリデコレータを置くことでした

@ViewChild(DataTableDirective, { static: false })
@ViewChild(DataTableDirective, { static: false })
 _

そのため、1つのデコレータを削除することによってのみ解決されました。