我有一个带有@Input 值和@ViewChild 值的组件 ImageUploaderComponent。

export class ImageUploaderComponent implements OnInit {
  @Input() canvasheight: number;
  @ViewChild('cropper', undefined)
  ...
}

如果@Input() 行在@ViewChild(...) 行之前,则该组件可以正常工作,但如果将它们颠倒,则该组件不起作用。我认为这可能与 @ViewChild 没有使用分号有关,这会导致错误。

编辑:
嗯,这是一个语法错误。您不必在@ViewChild 上方使用@Input(),这与问题所暗示的相反。

最佳答案

Input 和 ViewChild 装饰器没有特定的声明顺序。

请注意,这些变量仅在 ngOnInit() 中可用,而不在之前(例如在构造函数中)可用。

@ViewChild 声明中的“未定义”甚至是什么?正确的声明是:

@ViewChild(ChildDirective) child: ChildDirective;

或者
@ViewChild('reference') child: ChildDirective;

关于 Angular :@Input() 必须高于 @ViewChild 吗?为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50014522/

10-13 05:24