处理饼图难以绑定调用接口后的数据(then作用域外使用其中的数据)

64 篇文章 3 订阅
17 篇文章 0 订阅

一、说下我们这个pie(饼图坑爹之处)

它有两种data绑定方式

  • 直接绑定到data
<my-chart-pie :data="pieData" style="height:330px" >
data() {
    return {
      pieData: {
        columns: ['渠道', '访问量'],
        rows: [
          ['直接访问', 320],
          ['邮件营销', 302],
          ['联盟广告', 334],
          ['视频广告', 390],
          ['搜索引擎', 330]
        ]
      },
      rows: [] // 后面要用到
    }
  }
  • 然后,修改它的rows

直接绑定在data时思路:
1、直接this.pieData.rows =(无效)
2、this.$set(pieData, 'rows', 获取到的数据)(无效,这个获取到数据这个位置,如果是静态即自己直接写的才行,调接口后就设置值,图都画完了,!坑爹就在它画完图后修改数据,图无法改变,难受┭┮﹏┭┮

二、绑定methods中函数(即return返回的数据)

<my-chart-pie :data="getData()" :extend="extend"  style="height:330px" >

先看一个错的绑定(这里十分之坑!作用域的问题{无法直接使用then里的数据})

getData() {
let rows = [] 
//
      this.countByType().then(res => {
        for (const e of res) {
          rows.push([e.count,  e.modelType])
        }
        console.warn('rows', rows)//可以看到,有值
      })
      console.warn('rows', rows)//没有值
      return {
                   columns: ['模型', '数量'],
                  rows
                  }

    }
  • 说实话,那时候拍脑袋还试了下axios原生调接口(结果没啥用~~亏我期待o(╥﹏╥)o)

来吧最后,处理解决的代码(很简单,但是当时居然没想起来【以前还用过,真的坑┭┮﹏┭┮】)

  • 最后想起,加一步、把数据给data,然后再去调用data中的,就可以在then外面使用了
created() {
//这个方法不能写到getData()中,它是监听绑定返回值,写在里面,会一直调用接口!!
this.countByType().then(res => {
        const rows = []
        for (const e of res) {
          rows.push([e.count,  e.modelType])
        }
        this.rows = rows// 最后想起了
      })
}

methods: {
getData() {
      
      return {
                   columns: ['模型', '数量'],
                  rows: this.rows
                  }

    }
}

解决!!!撒花✿✿ヽ(°▽°)ノ✿

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值