You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Chart.js柱状图无输出且无报错问题求助

React柱状图不显示问题排查与修复

我帮你排查出几个导致柱状图无输出且无报错的核心问题,都是容易忽略的细节,一起来修复:

问题1:Props名称大小写错误

你给Bar组件传递的是Data={data},但react-chartjs-2的组件接收数据的props是小写的data——JSX对props名称大小写是严格敏感的,这个错误直接导致组件无法获取到数据,自然渲染不出任何内容。

问题2:Chart.js v3+ 需要手动注册组件

如果你使用的是chart.js v3及以上版本(现在大部分新项目都是这个版本),它不再自动注册所有组件,必须手动导入并注册需要的缩放器、元素等,否则图表会静默失败(无报错但不渲染)。

问题3:颜色配置可以优化(非核心,但建议调整)

你给borderColor和backgroundColor传了单元素数组,虽然不会导致不显示,但直接传单个颜色值会更简洁,也符合Chart.js的规范。


修正后的完整代码

import React from 'react'
import { Bar } from 'react-chartjs-2';
// 导入Chart.js需要的核心组件
import { Chart as ChartJS, CategoryScale, LinearScale, BarElement, Tooltip, Legend } from 'chart.js';

// 注册必要组件,Chart.js v3+ 必须操作
ChartJS.register(CategoryScale, LinearScale, BarElement, Tooltip, Legend);

export default function BarChart() {
  const data = {
    labels: ["Home", "Product", "Cart"],
    datasets: [
      {
        label: '页面访问量', // 给标签加个有意义的名称,方便 tooltip 显示
        data: [38, 75, 25],
        borderColor: 'rgb(82,134,163)',
        backgroundColor: 'rgba(82,134,163, 0.6)', // 增加透明度,视觉效果更柔和
        pointBackgroundColor: 'rgb(82,134,163)',
        pointBorderColor: 'rgb(82,134,163)'
      }
    ]
  }

  return (
    <div style={{ width: '600px', height: '400px', margin: '20px auto' }}>
      <Bar 
        data={data} // 修正为小写的data
        options={{ 
          maintainAspectRatio: false,
          responsive: true // 开启响应式,适配容器尺寸
        }} 
      />
    </div>
  )
}

额外注意事项

如果还没安装依赖包,先执行以下命令安装:

npm install chart.js react-chartjs-2
# 或者使用 yarn
yarn add chart.js react-chartjs-2

内容的提问来源于stack exchange,提问作者Sandeep Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:22:53