原理就是:每次要渲染eChart之前,都去手动把eChart对象之前绑定的所有click事件清除掉,然后再重新绑定新的click事件,这样就不会导致渲染多次,多次绑定相同的click事件了。

const myChart = echarts.init(document.getElementById('myChart'));
 
// 清除画布
myChart.clear();
 
// 调用setOption,配置eChart参数
myChart.setOption(option);
 
// 在渲染click事件之前先清除之前绑定的旧的click事件
myChart.off('click');
 
// 重新绑定新的click事件
myChart.on('click', function (params) {
    if (params.value === 'xx') {
       // do something
    }
});

参考:

关于 eCharts 多次渲染导致点击事件调用多次的bug的解决方案