64.记录使用echarts饼图动态更新数据遇到的问题

1.数据监听不生效

一个页面引入饼图组件后,需要三次使用它,分别展示不同的数据;但将数据传递给子组件后,watch根本监听不到数据,开始以为是父组件绑定数据问题,一通乱改还是没生效,就去对比了之前写的,发现监听时,需要设置handler(value){},immediate:true,否则不立即监听,就收不到数据。

watch:{
    pieData:{
        handler(value){
            ...
        },
        immediate:true
    }
}

2.报错:this.myChart.clear is not a function

这里出错是因为,立即监听(immediate:true)时,再使用this.$nextTick(function(){......})包裹所写方法就不生效了,需要先判断this.myChart是否不等于空字符串,然后再使用clear和setOption方法。

// 错误写法

this.$nextTick(function(){
    this.myChart.clear()
    this.myChart.setOption(this.option)
})

// 正确写法

if(this.myChart != ""){
    this.myChart.clear()
    this.myChart.setOption(this.option)
}

你可能感兴趣的:(JavaScript,echarts,前端,javascript)