Tom*_*han 4 javascript react-vis
我正在阅读有关灵活图表的文档并尝试将它们应用于饼图:
import React from 'react'
import { RadialChart, FlexibleXYPlot } from 'react-vis'
const MyChart = ({data}) => (
<div>
<FlexibleXYPlot>
<RadialChart
data={data}
colorType="literal"
/>
</FlexibleXYPlot>
</div>
)
Run Code Online (Sandbox Code Playgroud)
但是在渲染这个时,我得到这样的标记:
<div>
<div style="width: 100%; height: 100%;">
<div class="rv-xy-plot " style="width: 0px; height: 0px;">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如您所见,rv-xy-plot元素的尺寸显式设置为0px。我究竟做错了什么?如何创建响应式饼图?
小智 6
我最近在使用这个包中的许多图表时遇到了同样的问题。我发现的一个解决方法是使用React-virtualized-auto-sizer。本质上,它的作用是将需要宽度和高度的组件包裹起来,然后传递父容器(自动调整器所在的容器)的宽度和高度。下面是一个例子:
<div style={{height:'100%',width:'100%'}} className={"mb-4"}>
<AutoSizer>
{({ height, width }) => (
<RadialChart
data={this.state.myData}
width={width}
height={height}
onValueMouseOver={this.handleMouseOver}
className={"mb-4"}
labelsAboveChildren={true}
/>
)}
</AutoSizer>
Run Code Online (Sandbox Code Playgroud)
所以 autosizer 在它上面查看外部 div,计算出高度和宽度,然后将其传递给图表。
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |