将 d3 js 代码从 v5.16 重构到 v6.6.2,d3.event 重大更改
refactoring d3 js code from v5.16 to v6.6.2, d3.event breaking change
d3 的新手并修复了一个错误。我正在使用 d3 库处理 js 文件。下面这行代码在v5.16中不会报错:
function br(d) {
let s = d3.event.selection || xScaleSelector.range()
let extent = s.map(xScaleSelector.invert, xScaleSelector);
let window = data.filter(d => d.date >= extent[0] && d.date <= extent[1])
update(window)
}
但是,当迁移到 v6.6.2 及更高版本时,出现错误。我收到的错误在线:let s = d3.event.selection || xScaleSelector.range()
错误如下:Uncaught TypeError: Cannot read properties of undefined (reading 'selection')
.
错误的根源,根据https://github.com/d3/d3/releases/tag/v6.0.0,v6.0.0已经删除了d3.event
。 (d3.event 在 v6 中未定义)。有人可以帮助建议我在迁移到 >= v6 时可以做哪些更改来修复此错误吗?
请尝试:
function br(d) {
let s = d.selection || xScaleSelector.range()
let extent = s.map(xScaleSelector.invert, xScaleSelector);
let window = data.filter(d => d.date >= extent[0] && d.date <= extent[1])
update(window)
}
根据迁移指南here
d3 的新手并修复了一个错误。我正在使用 d3 库处理 js 文件。下面这行代码在v5.16中不会报错:
function br(d) {
let s = d3.event.selection || xScaleSelector.range()
let extent = s.map(xScaleSelector.invert, xScaleSelector);
let window = data.filter(d => d.date >= extent[0] && d.date <= extent[1])
update(window)
}
但是,当迁移到 v6.6.2 及更高版本时,出现错误。我收到的错误在线:let s = d3.event.selection || xScaleSelector.range()
错误如下:Uncaught TypeError: Cannot read properties of undefined (reading 'selection')
.
错误的根源,根据https://github.com/d3/d3/releases/tag/v6.0.0,v6.0.0已经删除了d3.event
。 (d3.event 在 v6 中未定义)。有人可以帮助建议我在迁移到 >= v6 时可以做哪些更改来修复此错误吗?
请尝试:
function br(d) {
let s = d.selection || xScaleSelector.range()
let extent = s.map(xScaleSelector.invert, xScaleSelector);
let window = data.filter(d => d.date >= extent[0] && d.date <= extent[1])
update(window)
}
根据迁移指南here