React / DC.js-调整图表大小(基于窗口大小)

约瑟夫

我正在尝试根据窗口大小调整几个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章