网站搜索

typescript - Angular Material SnackBar `onAction()` 方法没有触发


我在使用 Angular Material 的 SnackBar 的 onAction() 方法时遇到了问题,点击按钮后它没有触发。我已经打开了 SnackBar,并订阅了 onAction、afterDismissed 和 afterOpened 方法。其他方法都会触发,但 onAction 不会。有人知道我应该怎么做吗?自从 Angular 从 9 升级到 11 以后,我就遇到了这个问题。

constructor(public snackBar: MatSnackBar) {}

private openSnackBar() {
  let mySnackBar: MatSnackBarRef<TextOnlySnackBar> = this.snackBar.open('Message', 'Close');
    mySnackBar.afterDismissed().subscribe((matSnackBarDismiss: MatSnackBarDismiss) => {
      console.log('afterDismissed');
    });
    mySnackBar.onAction().subscribe(() => {
      console.log('onAction');
      mySnackBar.dismiss();
    });
    mySnackBar.afterOpened().subscribe(() => {
      console.log('afterOpened');
    });
  }
}

答案#1

这是内部 CSS 的问题。可能有人移除了某个 CSS 属性(我认为是 pointer-events),并且它包含在 Angular 更新中。我修复了本地的 CSS,现在它可以正常工作了。