当从角度11更新到12时,选择现在私有的覆盖方向。我现在如何访问它? [英] MatSelect overlayDir now private when updating from Angular 11 to 12. How do I access it now?
本文介绍了当从角度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屋!
查看全文