gpt4 book ai didi

Typescript/D3 v4 - d3.drag().on ("end"中的 this 上下文,this.dragended)

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:07 24 4
gpt4 key购买 nike

我正在使用 D3 库在维恩图中移动项目。当我停止拖动时,我想确定项目在图表中的位置。

item.call(d3.drag()
.on("start", this.dragstarted)
.on("drag", this.dragged)
.on("end", this.dragended)
);

这些是我在拖动开始、进行和结束时调用的函数。

dragended(d: TCMemberScenario, i: number) {
d3.select(this).classed("active", false);
d.calculateRoles();
this.save();
}

这是拖动结束时调用的函数。我更新了图中的一些东西,然后我想调用保存方法。这是类中的另一个方法。但是,this 变量引用的是 D3 对象而不是类的实例。所以我得到一个“Uncaught TypeError: Cannot read property 'save' of undefined”

如何从 dragended 方法中调用我类的另一个方法?

最佳答案

要保留对“this”的引用,请使用如下箭头函数:

item.call(d3.drag()
.on("start", (d, i) => this.dragstarted(d,i))
.on("drag", (d, i) => this.dragged(d, i))
.on("end", (d, i) => this.dragended(d, i))
);

关于Typescript/D3 v4 - d3.drag().on ("end"中的 this 上下文,this.dragended),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38945311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com