Chart.js无法注册chartjs-chart-geo与chartjs-chart-wordcloud扩展控制器的问题求助
Chart.js无法注册chartjs-chart-geo与chartjs-chart-wordcloud扩展控制器的问题求助
大家好,我正在给一个基于Flask后端的Web应用开发仪表盘,图表模块用的是Chart.js,其中词云和交互式地图(Choropleth)分别依赖chartjs-chart-wordcloud和chartjs-chart-geo这两个扩展。之前图表渲染一切正常,但毫无征兆地突然开始报错:
Uncaught Error: 'wordCloud' is not a registered controller.
同时还会出现类似的Choropleth控制器未注册的错误,可明明我已经在代码里手动注册了这些控制器啊...
我尝试过更换多种导入方式,但都没能解决问题。以下是我的核心代码:
import {Chart, registerables} from 'https://esm.sh/chart.js@4.4.4'; import {WordCloudController, WordElement} from 'https://esm.sh/chartjs-chart-wordcloud@4.4.4'; import { topojson, ChoroplethController, GeoFeature, ProjectionScale, ColorScale, } from 'https://esm.sh/chartjs-chart-geo@4.3.4'; Chart.register(WordCloudController, WordElement, ChoroplethController, GeoFeature, ProjectionScale, ColorScale, ...registerables) // [...] function insert_cloud_word_chart(element, infos) { const config = { type: WordCloudController.id, data: { labels: infos['labels'], datasets: [ { label: 'Frequência', data: infos['data'], }, ], }, options: { responsive: false, maintainAspectRatio: false, plugins: { legend: { display: false }, }, elements: { word: { fontFamily: 'sans-serif', color: (ctx) => { // 根据索引为每个单词定义颜色 const colors = ['#003D6A', '#22CBE4', '#2662F0', '#333333']; return colors[ctx.index % colors.length]; }, } } }, } new Chart(element, config) }
为了排查问题,我特意用console.log(Chart.registry.controllers)检查控制器注册状态,结果发现:虽然扩展的控制器导入正常,注册函数也执行了,但这些扩展控制器并没有出现在注册列表里...
有没有大佬遇到过类似的问题?求指点迷津!
备注:内容来源于stack exchange,提问作者Victor Lima
相关产品推荐
相关产品推荐

