【问题标题】:refactoring d3 js code from v5.16 to v6.6.2, d3.event breaking change将 d3 js 代码从 v5.16 重构到 v6.6.2,d3.event 重大更改
【发布时间】:2022-01-23 19:40:13
【问题描述】:

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 时可以进行哪些更改来修复此错误吗?

【问题讨论】:

    标签: javascript d3.js migration


    【解决方案1】:

    请尝试:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2017-03-08
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多