【发布时间】:2017-05-04 09:21:56
【问题描述】:
我正在将 React 与 d3 一起使用,并且我正在尝试研究如何在比例更改时正确触发渲染。但是,要可靠地检测尺度是否发生了变化是相当困难的。
理论上,我可以想到两种解决问题的方法。
我可以在每次渲染时重新生成比例,然后有一种可靠的方法来确定两个比例是否相同(例如比较它们的域、范围等)。但是仍然存在一些问题——例如,我实际上并不确定如何区分具有相同域和范围的线性刻度和对数刻度。 (如果我尝试一个测试值——比如域的中点——如果给定一个非数字比例,它会崩溃。我可以通过,呃,'reverse-duck-typing'所有 d3 的各种比例来避免这种情况,但这似乎非常繁琐,如果测试功能变得过于简单,可能会降低性能。)
另一种解决方案是在渲染中保持一致的缩放对象,但如果其任何属性发生更改,则以某种方式获取缩放以触发渲染。我认为这最终会与第一个选项中的相同,但也许 d3 中有一些我不知道的技巧使它更容易?
【问题讨论】:
-
我认为您问题的最佳答案取决于您是在渲染方法中使用 d3,还是在其他生命周期方法中使用 d3 选择器。
-
如何使用一些实用变量来确定您定义它的点的比例类型,例如
var isLinear =true;,并在您更改比例时修改它。..
标签: javascript reactjs d3.js