错误:“类别”不是注册比例

Pab*_*blo 2 chart.js

我正在尝试将 Chart.js 从 迁移2.9.33.3.0甚至在应用更改之后(https://www.chartjs.org/docs/latest/getting-started/v3-migration.html)我仍然收到错误:

Error: "category" is not a registered scale.

这就是我所拥有的

Chart.register(BarController, DoughnutController, LineController, PieController);
Run Code Online (Sandbox Code Playgroud)
new Chart(this.id, {
    type: 'bar',
    data,
    options: {
        responsive: true,
        maintainAspectRatio: false,
        plugins: {
        title: {
            display: options.plugins.title ? true : false,
        },        
        tooltip: {
            mode: 'index',
            intersect: false
        },        
        scales: {
        x: {
            stacked: true,
            gridLines: {
            drawBorder: false,
            display: false,
            },
            ticks: {
            autoSkip: true,
            maxTicksLimit: 13,
            },
        },
        y: {
            stacked: true,
            gridLines: {
            color: '#e6e6e6',
            drawBorder: false,
            },
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我会在这里错过什么?

Eri*_*dán 76

如果您正在使用react-chartjs-2.

没有摇树:

import { Chart as ChartJS } from 'chart.js/auto'
import { Chart }            from 'react-chartjs-2'
Run Code Online (Sandbox Code Playgroud)

随着树摇动:

import {
  Chart as ChartJS,
  CategoryScale,
  LinearScale,
  PointElement,
  LineElement,
  Title,
  Tooltip,
  Legend,
} from 'chart.js'
import { Chart } from 'react-chartjs-2'

ChartJS.register(
  CategoryScale,
  LinearScale,
  PointElement,
  LineElement,
  Title,
  Tooltip,
  Legend
)
Run Code Online (Sandbox Code Playgroud)


小智 27

与react-chartjs-2一起使用并导入所有内容;将图表更改为 Chartjs,以便从 React Chart 导入图表时不会显示错误

import { Chart as ChartJS, registerables } from 'chart.js';
import { Chart } from 'react-chartjs-2'
ChartJS.register(...registerables);
Run Code Online (Sandbox Code Playgroud)


Lee*_*lee 6

就像错误说您正在使用一样,category scale因此您需要像这样导入和注册它:import {CategoryScale} from 'chart.js'; Chart.register(CategoryScale)

或者你也可以选择不使用treeshaking和像这样进口的一切:import Chart from 'chart.js/auto'

对于您可能需要导入和注册的所有可用内容,请查看此处:https : //www.chartjs.org/docs/3.3.0/getting-started/integration.html#bundlers-webpack-rollup-etc

  • 他在代码中的什么地方实际使用了categoryScale?什么是品类规模? (7认同)

小智 5

对于 NextJS,我必须使用以下内容,因为在内部有一个 useEffect 在react-chartjs-2中,所以所有的都需要客户端渲染:

"use client";

import "chart.js/auto";

import { Line } from "react-chartjs-2";
Run Code Online (Sandbox Code Playgroud)