Chart JS 对计算 属性 中的变化没有反应
Chart JS not reacting to change in computed property
我计算了 属性:
computed: {
drilldownData() {
if (this.toggle_drill === "up") {
return this.waterfallDataSmall
} else {
return this.waterfallData
}
}
}
并且 toggle_drill
是连接到按钮切换组件的模型变量:
<v-btn-toggle v-model="toggle_drill">
当我切换它时,toggle_drill
会毫无问题地从上到下改变值。
但是您可以在此处的复制示例中看到:
Codesandbox
图表只更新一次,仅此而已。它应该更新,因为 toggle_drill
正在更新,这个计算的 属性 表明。初次更新后似乎崩溃了,但我不知道为什么。
chart.js 更改图表数据对象,原始 waterfallDataSmall
在第一次更改后被覆盖。
一个简单的修复方法是传递一个克隆的对象。
drilldownData() {
if (this.toggle_drill === "up") {
return JSON.parse(JSON.stringify(this.waterfallDataSmall));
} else {
return this.waterfallData;
}
}
我计算了 属性:
computed: {
drilldownData() {
if (this.toggle_drill === "up") {
return this.waterfallDataSmall
} else {
return this.waterfallData
}
}
}
并且 toggle_drill
是连接到按钮切换组件的模型变量:
<v-btn-toggle v-model="toggle_drill">
当我切换它时,toggle_drill
会毫无问题地从上到下改变值。
但是您可以在此处的复制示例中看到: Codesandbox
图表只更新一次,仅此而已。它应该更新,因为 toggle_drill
正在更新,这个计算的 属性 表明。初次更新后似乎崩溃了,但我不知道为什么。
chart.js 更改图表数据对象,原始 waterfallDataSmall
在第一次更改后被覆盖。
一个简单的修复方法是传递一个克隆的对象。
drilldownData() {
if (this.toggle_drill === "up") {
return JSON.parse(JSON.stringify(this.waterfallDataSmall));
} else {
return this.waterfallData;
}
}