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

使用ChartJs.Blazor 2.0.2构建堆叠条形图时触发onClick未定义错误

解决ChartJs.Blazor 2.0.2堆叠条形图的"Cannot read properties of undefined (reading 'onClick')"错误

我之前在Blazor WebAssembly项目里用ChartJs.Blazor 2.0.2做堆叠条形图时,也碰到过一模一样的错误!折腾了好一会儿才找到根源,主要是版本兼容和脚本配置的问题,下面把亲测有效的解决方法分享给你:

1. 先搞定Chart.js的版本匹配

ChartJs.Blazor 2.x系列和Chart.js 3.x+版本不兼容!后者的API结构做了大幅改动,导致interop脚本找不到onClick属性。你得换成Chart.js 2.9.x版本,我用的是2.9.4,完全没问题:

  • 如果是用npm管理的话,执行:
    npm uninstall chart.js
    npm install chart.js@2.9.4
    
  • 要是用libman,直接在libman.json里指定版本2.9.4拉取资源就行。

2. 调整脚本引入的顺序和方式

index.html里的脚本顺序很关键,而且别给Chart.js加type="module"属性(2.x版本不是模块,加了会导致全局找不到Chart对象)。正确的引入应该是这样:

<script src="lib/moment.js/moment.js"></script>
<script src="lib/Chart.js/chart.js"></script>
<script src="_content/ChartJs.Blazor.Fork/ChartJsBlazorInterop.js"></script>

3. 简化Tooltip配置排查问题

你的代码里的Tooltip配置本身没问题,但如果版本不对,某些配置项可能会触发异常。可以先把Tooltip简化成基础配置,验证图表能正常渲染后再加回复杂设置:

Tooltips = new Tooltips
{
    Mode = InteractionMode.Index,
    Intersect = false
}

4. 清理缓存重新构建

最后别忘了清掉浏览器缓存(Ctrl+Shift+R强制刷新),再删除项目的bin和obj文件夹重新构建——有时候旧的缓存脚本会搞出奇怪的冲突。

按照这些步骤调整完,我当时的错误就消失了,堆叠条形图正常渲染,点击"Randomize Data"按钮也能正常更新数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:22:38