d3.js错误Cannot read property ‘button’ of null
在d3的官方文档上有这么一段话
如果你使用 Babel, Webpack 或者其他的 ES6 转 ES5 的打包工具,要注意
d3.event
的值在事件中的变化!导入的d3.event
必须是 live binding(动态绑定) 的,因此你需要将打包配置设置为引入 D3 的 ES6 模块而不是生成的 UMD;并不是所有的打包工具都识别 jsnext:main。也要注意与window.event
的冲突。
文档地址:https://d3js.org.cn/api/d3-selection/#handling-events
所以,在使用babel+webpack时,用import * as d3 from 'd3'
这种方式是不行的,获取到的d3.event
为null
,所以就出现了上述错误。
借助于webpack,可以将d3添加到全局,即可解决这个问题。
plugins: [
new webpack.ProvidePlugin({
'd3': 'd3'
})
]
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=1349