Javascript D3 tip和NPM:;TypeError:m.tip不是一个函数;
我正在围绕D3编写React包装,在尝试使用D3 tip时出错:Javascript D3 tip和NPM:;TypeError:m.tip不是一个函数;,javascript,d3.js,npm,tooltip,Javascript,D3.js,Npm,Tooltip,我正在围绕D3编写React包装,在尝试使用D3 tip时出错:TypeError:m.tip不是函数 我在d3 tip GitHub上也看到过类似的帖子,但在我的案例中都不起作用。我已经使用NPM安装了D34.12.2和D3 tip 0.7.1,因此这些链接中提到的版本问题不应适用 相关代码如下所示: import * as d3 from 'd3'; import * as d3Tip from 'd3-tip'; svg = d3.select('#' + divId)
TypeError:m.tip不是函数
我在d3 tip GitHub上也看到过类似的帖子,但在我的案例中都不起作用。我已经使用NPM安装了D34.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);
});
有什么办法解决这个问题吗?为了让它正常工作,我会调整一些东西 比如说, 别名导入可以简单到
从“d3 tip”导入d3Tip
d3Tip是从d3 tip repo中的索引文件返回的默认函数的别名
接下来,调用d3Tip以获取tip
对象,例如,调用d3Tip()
以获取您正在使用的var工具提示
现在,您有了一个tip对象,不需要再调用.tip()
:)您试过调试它吗?例如,console.log(d3Tip)
,查看d3Tip是什么?从“d3Tip”导入d3Tip会导致ts]Module'/home/tomasz/work/ANGULAR/d3/d3_DEMO/node_modules/@types/d3Tip/index''没有默认导出。听起来像是导入问题;尝试在导入类周围使用{},以防它不是默认导出。如果它不起作用,看看源代码中的导出。我使用了这个,它起作用了。不过我还是用了d3tip=require('d3-tip')
然后根据需要使用d3tip。