之前使用的是v3版本,使用到了对角线,但在v3之后d3.svg.diagonal被移除,当升级d3版本到v4,v5之后报错:
Uncaught (in promise) TypeError: d3.svg.diagonal is not a function
解决:替换diagonal方法
原:
this.diagonal = d3.svg
.diagonal()
.projection(d => [d.y, d.x])
替换为:
this.diagonal = function (d) {
return 'M' + d.source.y + ',' + d.source.x +
'C' + (d.source.y + d.target.y) / 2 + ',' + d.source.x +
' ' + (d.source.y + d.target.y) / 2 + ',' + d.target.x +
' ' + d.target.y + ',' + d.target.x
}
参考d3的github的issues中给出的答案:https://github.com/d3/d3-shape/issues/27