我有一个带有@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/