我在D3周围写了一个React包装器,在尝试使用D3-tip时遇到错误:TypeError: m.tip is not a function
。
我在d3-tip GitHub上看过类似的帖子(here和here)以及this issue,但在我的情况下都没有。我使用NPM安装D3 4.12.2和D3-tip 0.7.1,因此这些链接中提到的版本问题不适用。
相关代码如下所示:
import * as d3 from 'd3';
import * as d3Tip from 'd3-tip';
svg = d3.select('#' + divId)
.append('svg')
.attr('width', width)
.attr('height', height);
g_node = svg.append('g')
.attr('id', 'g_node');
var node_circles = g_node.selectAll('circle')
.data(dataset, function(d) { return d.name; });
var tool_tip = d3Tip.tip()
.attr('class', 'd3-tip')
.offset([-8, 0]);
svg.call(tool_tip);
node_circles.enter()
.append('circle')
.attr('cx', function(d) { return projection(d.pos)[0]; })
.attr('cy', function(d) { return projection(d.pos)[1]; })
.attr('r', '' + NODE_RADIUS + 'px')
.attr('fill', 'blue')
.on('mouseover', function(d) {
tool_tip.show(d);
})
.on('mouseout', function(d) {
tool_tip.hide(d);
});
有关如何解决此问题的任何想法?
答案 0 :(得分:-1)
为了使它正常工作,我将进行一些调整。
例如,
别名导入可以很简单
import d3Tip from 'd3-tip'
d3Tip是d3-tip存储库中从索引文件返回的默认函数的别名。
在此之后,调用d3Tip以便返回tip
对象,例如致电d3Tip()
获取您正在使用的var tooltip
。
现在,您有了一个提示对象,不再需要调用.tip()
了:)