typescript Angular [CDK v10+]无法找到拖放CDK中弃用功能“enter”的适当替代

vbopmzt1  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(123)

我错误地在stackblitz(某种代码窗格)中处理了一个比10岁更老的角形版本。
在这里我发现移动了函数输入github。但它没有帮助我的情况。在基于网格的拖放,有能力在不同的可拖动容器之间拖动。从angular dragdrop grid派生。唯一的错误,当我升级到最新版本(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
当前为this is the state
我希望将此功能转移到最新的CDK版本,而不会丢失此功能。
当我在版本i之间来回切换时,注意到cdkDropListEnterPredicate的行为不像它的使用那样工作。
在v9中,cdkDropListEnterPredicate针对每个像素调用函数,但对于v12,行为发生了变化。
要查看运行中的错误,请转到package.json并将从"@angular/cdk": "9.1.2"更改为:"@angular/cdk": "12.1.2"我尝试过使用dragRefdropListRef,但是失败了。

a0zr77ik

a0zr77ik1#

请点击查看示例...... [此处](https://stackblitz.com/edit/angular-cdk-drag-drop-sortable-flex-wrap-if3hjb?file=src/app/app.component.html
现在有了新的版本,我们可以用一个方法(cdkDragEntered)替换所有以前的方法,它会处理所有的事情。

相关问题