为什么在我的React应用程序的Chrome控制台中未定义d3?

时间:2019-11-29 01:00:26

标签: javascript reactjs google-chrome d3.js

我正在像这样在我的React应用程序中导入d3.js库:

import * as d3 from "d3";

我正在创建一个基本的世界地图,该地图也可以在浏览器中正确显示。但是,当我尝试在Chrome控制台中执行以下操作时:

d3.select("path")

我遇到错误:

  

未捕获的ReferenceError:d3未定义

我想它与React的工作方式有关,并且作为React的新手,我现在不知道我现在在这里缺少什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

因为webpack(或任何其他废话)将其保存在模块范围内。为防止模块之间发生冲突,捆绑器将其与功能包装在一起。您可以将所有导入视为本地函数变量:

function yourModule(require) {
  const d3 = require('d3');

  // you can use d3 here within your module
}

you're not able to use it here, somewhere outside