我正在使用 D3 库 v4 和 Angular2,我想拖放 svg 元素。我有一个代码:
item.call(
d3.drag()
.on("start", dragStarted)
.on("drag", dragged)
.on("end", dragEnded)
);
and
function dragStarted(d) {
d3.select(this).raise().classed("active", true);
}
function dragged(d) {
d3.select(this).attr("cx", d.x = d3.event.x).attr("cy", d.y = d3.event.y);
}
function dragEnded(d) {
d3.select(this).classed("active", false);
}
我收到此错误:
TS2345:“DragBehavior”类型的参数不可分配给“(selection: Selection, ...args: any[]) => void”类型的参数。
参数“选择”和“选择”的类型不兼容。
类型“选择”不可分配给类型“选择”。
类型“BaseType”不可分配给类型“Element”。
类型“EnterElement”不可分配给类型“Element”。
“EnterElement”类型中缺少属性“classList”。
有任何想法吗?
我尝试使用代码这个样本 https://bl.ocks.org/mbostock/22994cc97fefaeede0d861e6815a847e但它显示相同的错误。
我用另一种方式写:
svg.selectAll("circle")
.data(circles)
.enter().append("circle")
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; })
.attr("r", radius)
.style("fill", 'blue');
svg.selectAll("circle").call(d3.drag().on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended));
这对我有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)