echarts pie饼图初始化的时候没数据

原因:我们在componentDidMount生命周期里初始化了Pie(echarts的饼图)

componentDidMount() {
    this.showPieChart()
}
showPieChart = () => {
    let myChart = echarts.init(document.getElementById('PieWrap'))
    let data = this.genData()
    if (data) {
      const option = {
        title: {
          x: 'center',
        },
        tooltip: {
          trigger: 'item',
          formatter: '{a} <br/>{b} : {c}',
        },
        legend: {
          type: 'scroll',
          orient: 'vertical',
          right: 10,
          top: 20,
          bottom: 20,
          data: data.legendData,
          selected: data.selected,
        },
        series: [
          {
            name: '支出项',
            type: 'pie',
            radius: '55%',
            center: ['40%', '50%'],
            data: data.seriesData,
            itemStyle: {
              emphasis: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)',
              },
            },
          },
        ],
      }
      myChart.setOption(option, true)
    }
  }
  genData = () => {
    const { expendList } = this.props.boardForm
    let legendData = []
    let seriesData = []
    let selected = []

    expendList &&
      expendList.forEach(it => {
        legendData.push(it.name)
        seriesData.push({
          name: it.name,
          value: it.amount,
          code: it.code,
        })
      })
    console.log('legendData, seriesData, selected ', legendData, seriesData, selected)

    return {
      legendData,
      seriesData,
      selected,
    }
  }

这个时候,我们的数据还没从接口请求回来, 因此数据是空的!

等我们将数据请求回来的时候, 发现饼图并没有跟着更新数据,也就是看不见饼图了

解决:在componentWillReceiveProps(注意,请求的数据必须来自于props而非state)生命周期中再次调用初始化饼图的方法showPieChart

componentWillReceiveProps() {
    this.showPieChart()
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzxOnlineOk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值