我正在尝试将 Chart.js 从 迁移2.9.3到3.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)
就像错误说您正在使用一样,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
小智 5
对于 NextJS,我必须使用以下内容,因为在内部有一个 useEffect 在react-chartjs-2中,所以所有的都需要客户端渲染:
"use client";
import "chart.js/auto";
import { Line } from "react-chartjs-2";
Run Code Online (Sandbox Code Playgroud)