javascript - Angular [CDK v10+] 在拖放 CDK 中找不到合适的替代“进入”已弃用功能的方法
问题描述
我在 stackblitz(某种代码窗格)中错误地使用了 10 岁以上的 Angular 版本。
在这里我找到了移动的函数进入github。但这对我的情况没有帮助。基于网格的拖放,具有在不同可拖动容器之间拖动的能力。从角拖放网格分叉。升级到最新版本 (12.1.2) 时出现的唯一错误是这里
this.placeholder.enter(
drag,
drag.element.nativeElement.offsetLeft,
drag.element.nativeElement.offsetTop
);
错误:Property 'enter' does not exist on type 'CdkDropList<any>'
我找到的唯一参考是来自stack-overflow的这个页面。当我尝试解决方案时,行为被搞砸了,控制台正在记录这个错误ncaught RangeError: Maximum call stack size exceeded
。
目前是这种状态。
我希望将此功能转移到最新的 CDK 版本而不会丢失该功能。
当我在版本之间来回切换时,我注意到它的行为cdkDropListEnterPredicate
不像它的用途那样工作。
在 v9cdkDropListEnterPredicate
中,每个像素都调用函数,但在 v 12 中,行为发生了变化。
要查看操作中的错误,请转到并将package.json
from 更改"@angular/cdk": "9.1.2"
为:"@angular/cdk": "12.1.2"
我尝试使用但失败了。dragRef
dropListRef
解决方案
推荐阅读
- flutter - 为什么我们需要在 Flutter 中推送上一个屏幕的上下文?
- google-cloud-platform - Bigquery Slot 指标未在 GCP 中显示数据
- python - 如何确定以下算法的运行时间
- r - 在闪亮的语句旁边添加一个按钮
- c# - Linq 内连接与对象列表
- python - 如何使用 Python 单独更新 csv 文件中的列
- c++ - std::string 作为输出参数或返回值
- apache-spark - 如何从 spark UI 中提取所需的信息来触发应用程序?
- android - 如何将托管在 Play 商店的 Android 应用程序从内部测试转移到生产?
- arrays - 如何合并2个数组,其中一个值与另一个值与Ruby中的不同键匹配