【问题标题】:Importing d3 in react JS component file在 react JS 组件文件中导入 d3
【发布时间】:2021-03-02 08:45:16
【问题描述】:

我使用了post 的答案并使用了import d3Js from 'https://d3js.org/d3.v3.min.js';,但现在我收到了这个错误 - Failed to compile. ./src/components/StreamGraph.js Module not found: Can't resolve 'https://d3js.org/d3.v3.min.js' in 'C:\Users\...\src\components'

React 应用程序通过 npm 安装了 v6,但我想导入 v3 以进行一些可视化。我正在尝试制作流图,但无法导入 d3 v3。

这是我需要运行的代码模板:

import React, { Component } from "react";
import d3Js from 'https://d3js.org/d3.v3.min.js';
// import * as d3 from 'd3';
import './StreamGraph.css';


class StreamGraph extends Component{

    // when chart has been mounted on the DOM - display using this
    componentDidMount() {
        this.drawChart();
    }

    drawChart() {
     // coded here
    }
    
    render(){
    return <div id={"#" + this.props.id}></div>
  }

}

export default StreamGraph;

我可以知道是否可以导入其他版本吗?

【问题讨论】:

  • 您不能从外部网址import。您必须通过npm install d3 安装模块,然后从已安装的模块导入
  • @subparry 表示我不能在同一个应用程序中使用 2 个版本?
  • @KhaledAhmed 我不想使用 v6。我想要 v3 来进行一些可视化,但不是全部。我使用节点安装了 v6,但现在我想使用版本 3。
  • 所以直接将库导入为js库 import 'url';在索引文件中

标签: javascript reactjs d3.js


【解决方案1】:

我刚刚添加了npm install d33@npm:d3@3,现在两个版本似乎都可以正常工作。

【讨论】:

    【解决方案2】:

    如果你使用 npm 运行npm install d3。 如果您使用纱线运行yarn add d3

    然后你可以像这样简单地使用 d3 函数:

    import * as d3 from 'd3'
    
    d3.sum([1, 2, 3, -0.5])
    

    import { sum } from 'd3'
    
    sum([1, 2, 3, -0.5])
    

    【讨论】:

    • 哦,谢谢!还有一个问题,我是 React 新手,需要将一些 d3 图转换为反应组件,并且很难找到好的资源 - 你能建议一些步骤吗?我已经部署了应用程序,但无法从 csv 文件中获取数据。
    • 当然!有多种使用 React + D3 的方法。我建议你this article。我更喜欢将 D3 仅用作“实用程序”库,不要使用 D3 修改 DOM,而是使用 React 及其流程。所以,不要使用数据连接,而是使用 React 创建svg 元素。第一次理解不是那么容易,我知道,但继续努力! :)
    • 嘿@vila 非常感谢你,我想你回答了我的另一个问题,因为我只是一个初学者,但我仍然不确定我是否可以在一个 react 应用程序中使用两个版本的 d3。
    • 为什么需要两个版本的 d3?打开你的 package.json 文件并查看你的项目中是否安装了版本
    • 我在 v3 中制作了一些图表,但很难转换到 v6。网站上的其他页面只使用了 v6,所以不能在 package.json 中更改它
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 2021-10-16
    • 2019-05-28
    • 1970-01-01
    • 2018-07-07
    • 2017-12-05
    • 2016-11-02
    • 1970-01-01
    相关资源
    最近更新 更多