javascript - 数据更新时Vue Chart JS重新渲染图表
问题描述
我正在构建一个 Nuxt JS 前端,其中包含 Vue Chart JS 和一个 API,它每 X 秒获取一次数据并将数据保存到 Nuxt JS 存储。但是,在我的图表渲染后,尽管数据更新正确,但我似乎无法可靠地重新渲染图表。
我有一个插件,LineChart.js
其中包括我的图表:
import { Line, mixins } from 'vue-chartjs'
const { reactiveProp } = mixins
Chart.defaults.global.legend.display = false;
Chart.defaults.global.responsive = true;
Chart.defaults.global.maintainAspectRatio = true;
export default {
extends: Line,
mixins: [reactiveProp],
data () {
return {
localData: null
}
},
mounted () {
this.localData = this.chartData
// this.chartData is created in the mixin.
// If you want to pass options please create a local options object
this.renderChart(this.localData)
},
watch: {
chartData: {
handler: function (val, oldVal) {
this.localData = val
},
deep: true
}
}
}
我想通过添加一个观察者,chartData
我至少可以找出我的数据何时发生变化,而且确实如此。
我尝试在我的handler
函数内销毁并重新渲染图表,但这会导致无限循环。this.chartData
确实更新了,我只需要重新渲染图表。
解决方案
推荐阅读
- javascript - 创建一个带有 mysql 结果的 foreach
- mqtt - 尝试与 MQTT+Tasmota 连接时连接被拒绝
- katalon-studio - Katalon Studio 的数据绑定和类型
- mongodb - mongo 聚合到嵌套数组上的 elemMatch
- jenkins - ssh_askpass: exec(/app/jenkins-slave/workspace/foo@tmp/askpass_foo.sh): 没有这样的文件或目录
- symfony - 如何在 symfony 5 上安装 Ckeditor?
- python - 是否可以仅限制使用来自不同类的 setter/modifier 方法?
- jsp - 禁用基于 url 的导航栏元素
- c++ - c ++返回指向函数内部定义的静态数组的指针是否有效?
- windows - 带有 CPack 的应用程序符号