vue.js 当字符数据发生变化时,如何调用图表缩放resetZoom函数?

myss37ts  于 2023-08-07  发布在  Vue.js
关注(0)|答案(1)|浏览(131)

我有一个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!");
    
  }
}

e0uiprwp

e0uiprwp1#

您需要在图表中设置一个ref来访问它,然后在数据更改时调用该ref上的resetZoom()

<Line :data="chartData" :options="chartOptions" ref="myLineChart"/>

个字符
参见the Vue docs了解更多关于模板参考的信息。

相关问题