【问题标题】:is d3.axisBottom().tickFormat(""); an intended way to render an axis with ticks and without tick labels?是 d3.axisBottom().tickFormat("");一种用刻度和没有刻度标签来渲染轴的预期方法?
【发布时间】:2020-05-14 10:21:17
【问题描述】:

今天发现这个问题:https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24716 它涉及https://github.com/d3/d3-axis#axis_tickFormat

显然,拒绝该 PR 的论据如下:

在这种情况下,记录在案的 API 指的是: ...设置刻度格式功能... 远离 TS 定义中未记录的源代码行为可确保对源代码内部实现细节的更改不会破坏定义。

所以我只是想澄清一下tickFormat是否可以与字符串值一起使用

d3.axisBottom().tickFormat("");

一个预期的用例?渲染一个带有刻度且没有刻度标签的轴?

https://d3js.slack.com/archives/CGLMLCVEZ/p1574776972005200

【问题讨论】:

    标签: javascript typescript d3.js


    【解决方案1】:

    不,根据库作者的说法,这不是预期的用例,这是一个副作用。

    为了“停用”刻度标签,请简单地使用:.tickFormat(() => '')https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24716#issuecomment-381427458

    不,这不是故意的。 这更像是直接传递给selection.text 的刻度格式函数的副作用。 也就是说,支持它感觉是一件合理的事情,尽管如果主要目的是禁用刻度文本,这有点奇怪。 我觉得tickFormat(null) 会是一种更简洁的方式来执行此操作,但轴组件当前将 null 和 undefined 视为相同,因此使用它来表示 “使用刻度的刻度格式”

    https://d3js.slack.com/archives/CGLMLCVEZ/p1574783018008900

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-16
      • 2012-03-14
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多