Vue中Echarts点击事件不能调用methods方法

在VUE中使用echarts,绑定了一个点击事件获取echarts中的数据,并将获取到的数据传给另一个函数(在vue的methods:{}中)进行处理。但是发现不能这样调用,代码如下,报了以下错误:

methods:{
...
drawChart(){
 myChart1.on('dblclick','series.effectScatter',function (param){
        console.log("得到的参数:", param.name)
        this.testfun(deidList);   //在这里调用测试函数
      });
},
testfun(lis){
...
}
}

后来查询发现吧监听事件中的回调改为箭头函数就行了,如下:

methods:{
...
drawChart(){
 myChart1.on('dblclick','series.effectScatter',(param)=>{   //这里改为箭头函数 
        console.log("得到的参数:", param.name)
        this.testfun(deidList);   //在这里调用测试函数
      });
},
testfun(lis){
...
}
}

原因是普通函数和箭头函数关于this指向问题,这里附上一篇参考:https://www.imooc.com/article/288214

 

### 实现 Vue 地图 Scatter 图点击事件 为了在 Vue 中实现地图上的散点图 (scatter plot) 并为其添加点击事件,可以采用 ECharts 这一强大的可视化库。ECharts 提供了丰富的配置项来定制交互行为。 首先,在项目中安装 echarts 和其对应的 vue 组件: ```bash npm install echarts vue-echarts ``` 接着定义一个组件用于展示带有散点的地图并处理点击事件: ```vue <template> <v-chart class="chart" :option="option" @click="handleChartClick"/> </template> <script> import { ref } from 'vue'; import VChart, { THEME_KEY } from "vue-echarts"; import * as echarts from "echarts"; export default { name: 'MapScatter', components: { VChart, }, provide: { [THEME_KEY]: 'light' }, setup() { const option = ref({ tooltip: {}, visualMap: { show: false, min: 0, max: 1000, seriesIndex: 0, calculable: true }, geo: { map: 'world', // 使用世界地图作为背景 roam: true, label: { emphasis: { show: false } }, itemStyle: { normal: { areaColor: '#eee', borderColor: '#333' } } }, series: [ { type: 'effectScatter', coordinateSystem: 'geo', data: [ {name: 'China', value: [116.46, 39.92, 500]}, {name: 'USA', value: [-98.5795, 39.8282, 300]} ], encode: { value: 2 } }] }); function handleChartClick(params){ console.log('Clicked on:', params); if (params.componentType === 'series' && params.seriesType === 'effectScatter') { alert(`You clicked a point at ${params.name}`); } } return { option, handleChartClick }; } }; </script> <style scoped> .chart { height: 400px; } </style> ``` 上述代码创建了一个名为 `MapScatter` 的 Vue 组件[^1]。此组件利用 ECharts 展示了一张包含若干散点的世界地图,并通过监听图表的 click 事件实现了当用户单击某个散点时触发特定逻辑的功能[^2]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值