避免无效路径格式错误在D3更新

Avoiding Invalid Path format error in D3 updates

本文关键字:D3 更新 错误 格式 无效 路径      更新时间:2023-09-26

我在动态添加节点时遇到d3树布局的问题。

根据节点类型,我向节点添加了一个路径符号,但是在更新时,我得到一个错误说"无效的路径格式"。

Enter和update使用相同的代码:

nodeUpdate.select("path")
                .attr("d", d3.svg.symbol().type(function(d)
                {
                    return self.TypeToShape(d.Type);
                })
                .size(150))
                .attr("transform", function(d) 
                { 
                    var transform="translate(" + 2 + "," + -1 + ")"
                    if (d.Type==="e")
                    {
                        transform = transform+" rotate(30)"; 
                    }
                    return transform;
                })
                .style("fill", function(d){
                    return self.TypeToColour(d.Type);
                });

输入似乎不会导致问题,只有更新。

我是D3的新手,所以我想知道我是否错过了一些关于D3如何工作的概念,可能会导致这种情况。

请参阅此处:http://jsfiddle.net/z15825qu/

问题是您正在转换SVG符号,这会生成无效的path。要解决这个问题,只需不要转换它们:

node.select("path")
    .attr("d", d3.svg.symbol().type(function(d) {
        return self.TypeToShape(d.Type);
    })