'd3'中未找到导出'时间'(导入为'd3')

时间:2017-09-23 08:04:57

标签: reactjs d3.js

我是新手,将D3与React一起使用。我的反应应用程序是由create-react-app创建的。 在我的react组件中,我使用import * as d3 from 'd3'

导入d3

我的代码如下:

    this.xScale = d3.time.scale()
        .domain(d3.extent(this.props.data, function (d) {
            return d[_self.props.xData];
         }))
    .rangeRound([0, this.w]);

    this.yScale = d3.scale.linear()
        .domain([0,d3.max(this.props.data,function(d){
            return d[_self.props.yData]+_self.props.yMaxBuffer;
        })])
        .range([this.h, 0]);

    this.area = d3.svg.area()
        .x(function (d) {
            return this.xScale(d[_self.props.xData]);
        })
        .y0(this.h)
        .y1(function (d) {
            return this.yScale(d[_self.props.yData]);
        }).interpolate(this.props.interpolations);

得到了编译错误:

  'd3'

中未找到

导出'时间'(导入为'd3')

我在项目目录下使用npm install d3 --save导入d3。

任何人都有想法是什么问题?

3 个答案:

答案 0 :(得分:8)

你正在使用D3 v4。以下链接是您将旧版本转换为现在使用的版本的解决方案,应该是直接的。

https://github.com/d3/d3/blob/master/CHANGES.md

答案 1 :(得分:0)

使用d3.timeScale()代替d3.time.scale()

D3.js语法在版本4中进行了更改,因此不再使用d3.time。

您要么需要导入d3.js版本3

npm install d3@3

或更改您的代码以使用d3.js版本4语法

d3.timeScale();

答案 2 :(得分:0)

从版本4开始,您必须使用 d3。 scaleTime()