如何让react-chartjs-2在移动的上响应?

0md85ypi  于 2022-11-07  发布在  Chart.js
关注(0)|答案(2)|浏览(195)

我在我的一个项目中使用react-chartjs-2,我找不到图表的问题,因为在移动的上所有的标签和图例仍然是大的af.我尝试了responsive: truemaintainAspectRation: true.没有任何效果

piah890a

piah890a1#

我已经给你做了一个demo页面,告诉你我是如何让我的charjs响应的。
基本上,您需要给予<canvas>元素height:100%并传递以下选项:

  1. options: {
  2. maintainAspectRatio : false
  3. }

根本不要使用responsive: true,它似乎什么也不做。
如果您的<canvas>位于某个容器中,我建议使该容器具有响应性(例如,使用flexbox)。

b91juud3

b91juud32#

我在我的Nextjs应用程序上也遇到了同样的问题。我的条形图在移动的视口上没有正确渲染。
我仔细阅读了主要的ChartJS docs on responsiveness,其中有一部分谈到了当容器调整大小时调整图表画布的大小。在我的例子中,容器只是一个div。因此,为了解决移动的视口上的问题,我将div设置为相对位置,还设置了视图宽度和高度,但它会扰乱桌面屏幕上的chartjs渲染,因此我有一个CSS样式,重置了我的高度width在大于767px的屏幕上设置为自动。
另外,我根据chartJS文档设置了选项maintainAspectRatio : false

  1. # canvas-container {
  2. height: 60vh;
  3. width: 60vw;
  4. position: relative;
  5. }
  6. @media (min-width: 768px) {
  7. #canvas-container {
  8. height: auto;
  9. width: auto;
  10. }
  11. }
  12. <div id="canvas-container">
  13. <Bar options={options} data={data}/>
  14. </div>

不要忘记设置选项maintainAspectRatio : false
您可以从ChartJS Docs here中查看主要示例。希望这对您有所帮助:)

展开查看全部

相关问题