数据从后台来,Echarts数据为空未渲染

一、错误代码示例(逻辑代码,非所有代码)

//引入接口方法
import {getData} from '@/api/getData';
//定义并获取数据
let optionData =[];
getData().then((res)=>{
    optionData = res.data
})
//定义option
let option ={
    ...
    dataset:{
        source:optionData
    }
}
//挂载后渲染
onMounted(()=>{
     let myChart = echarts.init(piePolyline.value)
     myChart.setOption({})
})

echarts图表并未渲染,原因是访问接口是异步的,渲染后数据才获取到

二、解决:使用async await
步骤: 封装接口->async 访问接口后,await获取到数据 -> 处理数据->再初始化图表与定义option->setOption
挂载后,访问所封装的接口即可

//引入接口方法
import {getData} from '@/api/getData';
//定义并获取数据
let optionData =[];
//封装接口
async function getDatas(){
    optionData = await getData().then((res) => {
        return res.data.result
      },
      (err) => {
        return err
      },)
    //处理optionData
    //渲染echart
    setChart(optionData)
}
//封装方法,渲染option
function setChart(data){
     let myChart = echarts.init(piePolyline.value)
     myChart.setOption({
           ...
        dataset:{
            source:optionData
        }
     })
}

//挂载后渲染
onMounted(()=>{
    getDatas()
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值