I have been trying to solve this problem with ChartJS for a few days now, and I am completely stumped
My program shows the user a set of input elements they use to select data needing to be charted, plus a button that has an event to chart their data. The first chart works great. If they make a change to the data and click the button a second, third, or more time, all the data from the previous charts is plotted, PLUS their most recent selection.
It is behaving exactly like you might expect if the chart.destroy() object is not working, or perhaps would work if I created the chart object using a CONST (and could therefore add new data but not delete the beginning data).
我已经尝试了浏览器,chartjs和jquery库的所有组合如下:三种不同的浏览器:
· Chrome浏览器:版本107.0.5304.121(正式版本)(64位)·微软边缘:版本107.0.1418.56(正式版本)(64位)·火狐浏览器:107.0 64位我已经尝试了至少三个不同版本的Chart.js,包括· Versions 3.9.1 · 3.6.2 · 3.7.0 Jquery.js · v3.6.1 · v1.11.1
我尝试过的其他方法:
1.“使用严格”(无运气)
1.除了销毁图表对象之外,还删除了包含画布的div,并再次追加它。
1.在销毁图表后更新图表之前使用setTimeout()函数(因为我认为给销毁方法更多的时间可能会有所帮助)
在这里输入
第一个
1条答案
按热度按时间sc4hvdpw1#
我找到了一个解决问题的方法,但我仍然认为这是ChartJS中的一个bug。在调用bigChart.destroy()之前,我现在做两件事:首先,将数据对象重置回其原始值,其次,将配置对象重置回其原始值,然后调用bigChart.destroy()。
我认为destroy()方法应该为我处理这个问题,但是在我的例子中,不管出于什么原因,它都不能。
所以,我有一个变通办法,不是真正的解决方案,但我会接受它。