我有一个工作的D3 / React / Webpack系统,我试图通过不导入所有D3来减少构建大小。所以我有一个d3Import.js文件:
import { select, event } from 'd3-selection';
import { drag } from 'd3-drag';
export default { select: select, drag: drag, event: event };
,用
引用import d3 from '../../d3Import.js';
一切都建立并且运行良好(除了上面显示的内容之外还有更多的导入),除了在例如查询事件时查询事件。拖拽事件。
onDrag = () => {
const targetY = d3.event.y;
失败
TypeError:_d3Import2.default.event为null
我在阅读建议here
时尝试使用其他名称进行活动import { select, event as currentEvent } from 'd3-selection';
......但没有变化。这一切都曾经与
一起使用import * as d3 from 'd3;
但这似乎意味着在bundle.js中额外增加100k左右。任何帮助表示赞赏!
答案 0 :(得分:1)
感谢Terry的评论,我有OrderBy
的解决方案:
onDrag = () => {
d3.getEvent = () => require("d3-selection").event;
const targetY = d3.getEvent().y;
}