【问题标题】:Why MatDialogRef require 3 type argument(s)?为什么 MatDialogRef 需要 3 个类型的参数?
【发布时间】:2018-03-08 01:49:22
【问题描述】:

我正在尝试使用角度材质对话框组件。我过去用过它,我没有问题。但不知何故,我不能像过去那样使用它。这是我的实现:

export class FilterDialogComponent implements OnInit {

public clientDepartementFilter: string;
public partnerDepartmentFilter: string;
public checkboxFilters: CheckboxFilters;

constructor(public dialogRef: MatDialogRef<FilterDialogComponent>,
          @Inject(MAT_DIALOG_DATA) public data: any) {

this.checkboxFilters = data.checkboxFilters;
this.clientDepartementFilter = data.clientDepartementFilter;
this.partnerDepartmentFilter = data.partnerDepartmentFilter;
}

closeDialog(): void {
this.dialogRef.close({ data: this.clientDepartementFilter });
}

我这样打开它:

public openDialog(): void {
this.dialog.open(FilterDialogComponent, {
  data: {
    checkboxFilters: this.checkboxFilters,
    clientDepartementFilter: this.clientDepartementFilter,
    partnerDepartmentFilter: this.partnerDepartmentFilter
  }
}).afterClosed().subscribe(result => {
  console.log(result);
});

}

我的代码可以编译,但是当我使用

创建当前对话框的引用时出现错误
public dialogRef: MatDialogRef<FilterDialogComponent>

错误如下:

TS2314:通用类型“MatDialogRef”需要 3 个类型参数

当我在 MatDialog 中添加任何类型时,错误消失但我无法再编译我的代码...

现在我有以下错误:

错误 TS2707:通用类型“MatDialogRef”需要 1 到 2 个类型参数。

我尝试更新角度材料 angularCli 和 typescript,但它仍然无法编译。

"@angular/cli": "^1.7.2",

"@angular/compiler-cli": "^5.0.0",

“打字稿”:“^2.4.2”

"@angular/material": "^5.2.4",

关于它为什么会发生的任何建议或想法? 感谢您的帮助!

【问题讨论】:

    标签: angular typescript angular-material2


    【解决方案1】:

    MatDialogRef 泛型接受1 or 2 type arguments

    angular-material 是 AngularJS 库。应该改用@angular/material

    【讨论】:

    • 我正在使用@angular/material 5.2.4。我编辑了我的问题。
    • 这种角材料从何而来? @angular/material 5.2.4 需要 Angular 6。确保您安装的版本与您的依赖项兼容。
    • 我从 package.json 中删除了 angular-material 并更新了 @angular/cli,现在它适用于 MatDialogRef 但现在函数 openDialog() 出现以下错误:参数类型 {data: {CheckboxFilters , clientDepartmentFilter: string, partnerDepartmentFilter: string}} 不可分配给参数类型 MatDialogConfig
    • 不确定那里发生了什么,因为默认情况下 D 应该是 any github.com/angular/material2/blob/5.2.4/src/lib/dialog/… 。如果问题仍然存在,请考虑提供一种方法来复制问题(例如 Stackblitz)。
    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 2018-06-18
    • 2021-06-29
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多