当从角度11更新到12时,选择现在私有的覆盖方向。我现在如何访问它? [英] MatSelect overlayDir now private when updating from Angular 11 to 12. How do I access it now?

查看:12
本文介绍了当从角度11更新到12时,选择现在私有的覆盖方向。我现在如何访问它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在角度11中,在node_MODULES@angularMATERIAL选择中有一个变量:

/**
     * Overlay pane containing the options.
     * @deprecated To be turned into a private API.
     * @breaking-change 10.0.0
     * @docs-private
     */
    overlayDir: CdkConnectedOverlay;

第12角现在已更改为:

/** Overlay pane containing the options. */
    protected _overlayDir: CdkConnectedOverlay;

这当然打破了我对overlayDir的所有用法,例如:

let selectionOverlay = this.quickFiltersSelect
              .overlayDir as CdkConnectedOverlay;

给我TS错误: Property 'overlayDir' does not exist on type 'MatSelect' ...这是有道理的.现在它受到了保护。因此,我将.overlayDir更改为._overlayDir,现在收到TS错误:

Property '_overlayDir' is protected and only accessible within class '_MatSelectBase<C>' and its subclasses.
然后我导入了_MatSelectBase,但我不确定用什么替换它,也不确定我是否应该以这种方式访问受保护的属性。我认为_MatSelectBase是泛型,所以它正在寻找_MatSelectBase<C>,但我不再确定我是否在正确的道路上。

谁能告诉我我哪里出错了,解决方案是什么?

谢谢。

推荐答案

官方回复如下:

https://github.com/angular/components/issues/23625

我们不再将下拉菜单放置在选择的顶部(&E)。你可以尝试我们的新选择,基于MDC的风格。API和行为是完全相同的,因为它与当前的SELECT共享相同的基类,但CSS将略有不同,下拉菜单仅位于上方/下方。您可以通过以下方式尝试使用MatSelectModule:从@angular/材质-实验性/MDC-SELECT导入MatSelectModule,而不是从@angular/Material/SELECT导入MatSelectModule。

因此,答案是,使用实际的SELECT组件没有答案。目前,如果不想将选项放在SELECT顶部,则必须使用实验组件。

这篇关于当从角度11更新到12时,选择现在私有的覆盖方向。我现在如何访问它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆