📌  相关文章
📜  预期 2 个参数,但得到 1 个. viewchild angular - TypeScript (1)

📅  最后修改于: 2023-12-03 15:28:55.593000             🧑  作者: Mango

预期 2 个参数,但得到 1 个. viewchild angular - TypeScript

在 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 元素。