【问题标题】:How should I replace this .selectAll necessary before .data in D3?我应该如何在 D3 中的 .data 之前替换这个 .selectAll ?
【发布时间】:2021-01-15 17:05:49
【问题描述】:

我应该用什么替换`.selectAll('xxx')?

我发现这段代码最终通过 D3 输出 xy 图。
.whatever 看起来并没有经过深思熟虑。
所以我试图删除它并得到一个错误。 我应该如何/我应该用什么替换它?/它?
(不,在任何地方都没有叫 .whateverwhatever 的东西。)

const element = this.mainContainer
  .append('g')
  .attr('class', 'xyDots');
element
  .selectAll('.whatever') <-- If I remove this call I get an error.
  .data(data)
  .enter().append('circle')...

如果所述行被删除,则会出错:“TypeError: Cannot read property 'ownerDocument' of null”

用于回答的额外 XP 使.selectAll('.whatever') 在这种情况下工作的副作用是什么?

【问题讨论】:

标签: javascript typescript d3.js


【解决方案1】:

您是对的,在您的情况下,您传递给selectAll() 的参数无关紧要;但是,您不能删除selectAll 语句,即使selectAll() 中指定的参数不存在。 selectAll 的点是 d3 的进入-更新-退出模式的一部分。 Here 是 Mike Bostock 的一篇文章,供您查看。

在您提供的代码中,您似乎只是在尝试附加元素,但我仍然建议您将selectAll('.whatever') 更改为selectAll('circle')。这将是一个很好的样式(当然,不那么混乱),而且,它可以帮助您避免错误,以防您决定在将来更新元素。
希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    相关资源
    最近更新 更多