[英]Why is d3 pack layout crashing unexpectedly?
我的代码是在这里上bl.ocks.org:
更改选择标记的值以限制圈数。 如果您玩的不多,它似乎可以工作,但是特定实例(例如,为TE选择10,然后选择247)每次都会崩溃。 如果检查控制台,您会看到问题所在的行是nodes = pack.nodes(data);
。 我看到了两种可能性:要么这是d3包布局的错误,要么我的数据混乱了。 您能判断出这两种情况中的任何一种吗?如果是,具体问题是什么?
您的代码中存在一个错误,导致子节点重复。 由于子代是重复的,因此包布局中存在无限循环。
我是通过在调试器中设置一个断点,然后在让代码卡住一点之后暂停代码来发现此问题的。 果然,它被卡在for循环中,该循环中该节点的_pack_next
节点本身就是一个循环,从而导致无限循环。 而且很容易看到孩子们的重复。 例如, e.filter(function(d) { return d.name === "Jermichael Finley"; })
返回了两个节点,而不是一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.