📅  最后修改于: 2023-12-03 15:28:55.593000             🧑  作者: Mango
在 Angular 中,使用 ViewChild
装饰器来获取一个组件中的子组件或 DOM 元素。例如,下面是一个简单的组件,其中使用了 ViewChild
装饰器来获取子组件:
import { Component, ViewChild } from '@angular/core';
import { ChildComponent } from './child.component';
@Component({
...
})
export class ParentComponent {
@ViewChild(ChildComponent)
childComponent!: ChildComponent;
}
在上面的代码中,ParentComponent
组件包含一个 ChildComponent
子组件,并使用 ViewChild
装饰器来获取它。这使得 ParentComponent
可以访问 ChildComponent
的公共属性和方法。
然而,在有些情况下,可能会出现一个“预期 2 个参数,但得到 1 个”错误。这通常是因为 ViewChild
装饰器需要两个参数:要获取的组件或元素的类型,以及 static
标志。例如,下面是修改后的 ParentComponent
组件:
import { Component, ViewChild } from '@angular/core';
import { ChildComponent } from './child.component';
@Component({
...
})
export class ParentComponent {
@ViewChild(ChildComponent, { static: true })
childComponent!: ChildComponent;
}
在上面的代码中,我们将 static
标志设置为 true
,以便告诉 Angular 在组件初始化期间立即获取 ChildComponent
子组件。这解决了“预期 2 个参数,但得到 1 个”错误。
总之,使用 ViewChild
装饰器时,务必记得传递两个参数,即要获取的组件或元素的类型和 static
标志。这样可以避免出现错误,并成功获取子组件或 DOM 元素。