我正在尝试根据窗口大小调整几个dc.js图表的大小,我发现DC.js知识库中有一些示例,其中一个示例特别涉及调整画布元素的大小。
当我实施时,图表会无限地垂直调整2像素(建议调试)的大小。
我的猜测是这种React / DOM冲突,我可以通过在图表样式中添加以下内容来解决这个问题(不幸的是,这不是我的解决方案):
...
.style('position', 'absolute')
.style('left', 0)
.style('top', 0);
...
这是一个正在工作的闪电战
PS我尝试在中实现,chartTemplate.tsx
但出现一个奇怪的输入错误:
Property 'height' does not exist on type 'number | PieChart'.
Property 'height' does not exist on type 'number'.(2339)
最终,为了简洁起见,我想一次在模板中实现(而不是每个图表文件),但是我不确定这是否是DC.js的输入问题(因为我遇到了一些定义错误)或我的实施中出现错误
设置
.width(null)
要么
.height(null)
告诉dc.js使用其div的宽度或高度。在这种情况下,您没有任何限制图表div高度的东西,因此默认情况下,CSS框规则的大小要比SVG大一点,最终会陷入无限循环。
可以使用CSS规则来使图表div的高度与SVG相同,但是我认为这不值得,因为它看起来不像您想要在此处自动调整高度。
如果您只是想让图表填充窗口的宽度,则只应设置
.width(null)
并保持高度不变。
如果要使图表垂直拉伸,则可以使用CSS Flexbox,就像您开始的示例一样,否则CSS Grid是另一个不错的选择。使用可以限制图表div的高度(表格,恒定高度),这是安全的.height(null)
,但是是的,当div期望围绕SVG调整大小时,它会出现问题。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句