如何使用动态数据更新 Chartjs 图表 (react-chartjs-2)?

How to update Chartjs chart (react-chartjs-2) with dynamic data?

我一直在尝试用 React 制作一个简单的图表生成器。我使用 Handsontable 让用户输入动态数据,我希望更改能够反映在图表中。这是我的代码:Codesandbox reproducible.

小免责声明:handsontable 包在 codesandbox 中有很多错误。只需双击 数字 就会出现一个输入字段,您可以在其中编辑数据。

问题

出于某种原因,您只能编辑第一个数据行和第二个数据行中的内容(不包括标签)。之后,图表将不再更新。因此,尝试更改 Mercedes 标签下的 11,您就会明白我的意思。这些可以更改,更改将反映在图表中,但之后更改的任何数字都不会更新图表。

现在我读到了这个 github issue 人们建议添加一个随机密钥 (key={Math.random()}) 或 redraw 道具,这有点管用,但整个图表都得到了重新绘制,这不是我想要的。

问题在于改变深层嵌套属性。我已经使用 lodash clonedeep 深度克隆对象。然后更改该对象的内容并设置状态。之后一切正常。

我更新了 codesandbox reproduction 以防有人需要它。