我有一个Vue项目,安装了以下软件包。
├── chart.js@4.3.0 ├── chartjs-plugin-zoom@2.0.1 ├── vite@4.3.9 ├── vue-chartjs@5.2.0 ├ ── vue@3.3.4
我创建了一个“LineChart.vue”组件,我想要的是,当“chartData”在parement中被更改时,我想调用“chartjs-plugin-zoom”包中提供的“resetZoom”函数。
如何在vue-chartjs 5.2中执行此操作?似乎从v4版本开始,vue-chartjs默认具有数据更改监视器和选项更改监视器。如果传递了新数据或新选项, Package 器将更新或重新呈现图表。但是如何在我的组件中挂接数据更改事件呢?
“LineChart.vue”的内容
<template>
<Line :data="chartData" :options="chartOptions"/>
</template>
<script>
import zoom from 'chartjs-plugin-zoom';
import {
Chart as ChartJS,
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend,
Filler
} from 'chart.js'
import { Chart, Line} from 'vue-chartjs'
import { watch, ref, reactive} from 'vue';
ChartJS.register(
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend,
Filler,
zoom
)
export default {
name: 'LineChart',
components: { Line },
props: ['chartData', 'chartOptions'],
setup(props) {
console.log("LineChart setup!");
}
}
</script>
字符串
我试图在chartData上添加一个观察者,但似乎不起作用。我是一个新手,有谁可以帮忙吗?
export default {
name: 'LineChart',
components: { Line },
props: ['chartData', 'chartOptions'],
setup(props) {
watch( () => props.chartData, (newValue, oldValue) => {
console.log("watcher triggled fro chartData", newValue, oldValue);
},
{ deep: true }
)
console.log("LineChart setup!");
},
mounted () {
console.log("PmaGroupLineChart mounted!");
}
}
型
1条答案
按热度按时间e0uiprwp1#
您需要在图表中设置一个ref来访问它,然后在数据更改时调用该ref上的
resetZoom()
:个字符
参见the Vue docs了解更多关于模板参考的信息。