Javascript d3.组合模块时事件不工作

Javascript d3.组合模块时事件不工作,javascript,events,d3.js,webpack,Javascript,Events,D3.js,Webpack,我在导入代码的地方(es6importstatement)有一个d3选择和d3转换。不过,我还需要捕获事件。当我不导入d3转换时,d3.events可以完美地工作。导入d3转换后,我立即收到一个错误,指出d3.event为null,无法引用事件属性 D3API参考中有一个注释 : 如果您使用Babel、Webpack或其他ES6到ES5捆绑包,请注意d3.event的值在事件期间会发生变化!d3.event的导入必须是一个实时绑定,因此您可能需要将捆绑程序配置为从d3的ES6模块导入,而不是从生

我在导入代码的地方(es6
import
statement)有一个d3选择和d3转换。不过,我还需要捕获事件。当我不导入d3转换时,d3.events可以完美地工作。导入d3转换后,我立即收到一个错误,指出
d3.event
null
,无法引用事件属性

D3API参考中有一个注释

: 如果您使用Babel、Webpack或其他ES6到ES5捆绑包,请注意d3.event的值在事件期间会发生变化!d3.event的导入必须是一个实时绑定,因此您可能需要将捆绑程序配置为从d3的ES6模块导入,而不是从生成的UMD捆绑包导入;并非所有捆绑机都遵守jsnext:main。还要注意与window.event全局的冲突

我正在使用babel(用于ie11支持)和webpack进行捆绑。这张纸条是什么意思?为什么像
这样的东西不从'd3-selection'导入{event as d3event}
后跟
让d3=Object.assign({},d3selection,d3transition,d3event};
工作

import {event as d3event} from'd3-selection'
d3event === null // true; `event`'s value changes later with user input.
let d3 = Object.assign({}, d3selection, d3transition, d3event)
// won't have an `event` property since Object.assign({}, null) -> {}
添加
d3.event=event//或d3={event}
仍将返回分配时观察到的空事件;有关解决方案,请参阅

现在包含对什么是活动绑定的解释:对
d3 selection
中变量的引用

另外一个需要花费我一些时间的警告:如果
d3 drag
指向的
d3 select
版本与其他工具不同,
d3.select(/**/).call(d3.drag(/**/)
将不起作用,因为事件永远不会到达
d3.drag
正在使用的
event
变量。在
d3@^5
附近的某个地方,主程序包不再固定
d3选择
版本,从而允许这种不匹配