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

Vite+React+TS构建的Electron中react-chartjs-2白屏问题求助

问题排查与解决步骤

1. 补全缺失依赖

react-chartjs-2 依赖 chart.js 核心库,先确认已安装对应依赖:

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

2. 手动注册Chart.js核心模块

新版本Chart.js要求手动注册所需组件,修改你的Analytics组件代码:

import { Doughnut } from "react-chartjs-2";
// 导入并注册Chart.js必要模块
import {
  Chart as ChartJS,
  ArcElement,
  Tooltip,
  Legend
} from 'chart.js';

ChartJS.register(ArcElement, Tooltip, Legend);

const Analytics = () => {
    const data = {
        labels: ["Rent", "Groceries", "Utilities", "Others"],
        datasets: [
            {
                data: [8000, 15000, 5000, 12000],
                backgroundColor: ["#FF6384", "#36A2EB", "#FFCE56", "#4CAF50"],
                hoverBackgroundColor: [
                    "#FF6384",
                    "#36A2EB",
                    "#FFCE56",
                    "#4CAF50",
                ],
            },
        ],
    };

    return (
        // 给图表容器设置明确宽高,避免无法渲染
        <div style={{ width: '400px', height: '400px' }}>
            <Doughnut data={data} />
        </div>
    );
};

export default Analytics;

3. 适配Electron环境调整Vite配置

在vite.config.ts中添加配置,避免canvas相关依赖打包异常:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  build: {
    rollupOptions: {
      external: ['canvas'],
    },
  },
  optimizeDeps: {
    exclude: ['canvas'],
  },
});

4. 确认组件正确引入

检查主组件中Analytics的引入方式是否正确,示例:

import Analytics from './Analytics';

function App() {
  return (
    <div>
      <h1>Hello, World!</h1>
      <Analytics />
    </div>
  );
}

export default App;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:40:04