D3-tip和NPM:" TypeError:m.tip不是函数"

时间:2018-01-29 17:45:09

标签: javascript d3.js npm tooltip

我在D3周围写了一个React包装器,在尝试使用D3-tip时遇到错误:TypeError: m.tip is not a function

我在d3-tip GitHub上看过类似的帖子(herehere)以及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);
                });

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:-1)

为了使它正常工作,我将进行一些调整。

例如,

别名导入可以很简单 import d3Tip from 'd3-tip'

d3Tip是d3-tip存储库中从索引文件返回的默认函数的别名。

在此之后,调用d3Tip以便返回tip对象,例如致电d3Tip()获取您正在使用的var tooltip

现在,您有了一个提示对象,不再需要调用.tip()了:)