【发布时间】:2021-02-26 11:10:41
【问题描述】:
我正在为一款游戏开发一个损益跟踪器,我查询一个提供项目数据的 API,然后使用 chart.js 显示这些数据
我的问题是,在更新图表之前,它应该 .destroy() 上一个图表,但是我收到一条错误消息,提示 window.myChart.destroy is not a function
以下是用于此功能的代码;
// 检查 myChart 是否为空
if (window.myChart != null){
window.myChart.destroy();
}
// 创建图表
let ctx = document.getElementById("myChart").getContext('2d');
window.myChart = new Chart(ctx, { ... etc
// 更新尝试
if (window.myChart != null){
window.myChart.destroy();
window.myChart = null;
}
【问题讨论】:
-
在销毁后设置'window.myChart = null'以确保它不会调用两次。
-
@Mr.当前的问题是 .destroy() 没有被识别为函数
-
我遇到了同样的问题,因为我试图摧毁它两次。那是因为 destroy() 没有设置“window.myChart = null”,而是完全破坏了对象。在这种情况下,“if (window.myChart != null)”通过但图表已经销毁。
-
我已经更新了问题以包括我的尝试,可悲的是它仍然给出同样的错误,它做对了吗?
-
根据文档“这必须在画布重新用于新图表之前调用。”您可以使用 update() 代替销毁并重建它吗? chartjs.org/docs/latest/developers/api.html
标签: javascript chart.js destroy