美文网首页
Vue中父组件向子组件echarts传值问题

Vue中父组件向子组件echarts传值问题

作者: Mracale | 来源:发表于2021-10-25 15:34 被阅读0次

问题:当父组件传值给子组件echarts时,发现子组件获取的props为空,刚开始以为是钩子函数放错了地方,后来发现从mounted和created都不行。当在父组件data定义传递的数据的时候子组件显示正常

原因:后来经过排查,发现echarts是在渲染的时候就传递数据

解决方案:在父组件定义一个flag,当数据获得的之后再进行子组件的渲染

<template>
  <div class="dashboard-container">
    <!-- 面板统计组件 -->
    <panel-group :todayAppoint="todayAppoint" :newMember="newMember" :newCard="newCard"/>

    <el-row :gutter="40">
      <el-col :xs="24" :sm="24" :lg="12">
        <el-card>
          <!-- 饼状图:会员卡销售情况 -->
          <pie-chart v-if="flag" :legendData="cardSales.legendData" :seriesData="cardSales.seriesData"/>
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>

<script>
  import home from "@/api/home"
  import PieChart from './components/PieChart'
  import BarChart from './components/BarChart'
  import PanelGroup from './components/PanelGroup'

  export default {
  name: 'Dashboard',
  components: { PieChart, BarChart, PanelGroup },
  data() {
    return {
      todayAppoint: 0, //今日预约
      newMember: 0, //新增会员卡(日)
      newCard: 0, //新增会员(日)
      flag: false, // 判断是否显示图表组件
      cardSales: {
        legendData: [],
        seriesData: [
        ]
      }, // 会员卡销售情况
      sixMonthData: {} // 查询近6个月办卡情况
    }
  },
  mounted (){
    // 当加载dom后,会调用 this.initChart() 来进行初始化echarts实例
    this.$nextTick(() => {
      this.fetchData()
    })
  },
  methods: {
    fetchData() {
      home.index().then(response => {
        this.todayAppoint = response.data.today_appoint
        this.newMember = response.data.new_member
        this.newCard = response.data.new_card
      })

      home.sales().then(response => {
        let data = response.data.cardSalesInfo
        var len = data.length;
        for (var i = 0; i < len; i++) {
          console.log("datai",data[i].name)
          this.cardSales.seriesData.push({
            name: data[i].name,
            value: data[i].value
          })
          this.cardSales.legendData.push(data[i].name)
        }
        this.flag = true
        console.log(this.cardSales)
      })
    }
  },
}
</script>

<style lang="scss" scoped>

</style>

相关文章

  • vue中父子组件传值

    vue中父子组件传值是经常使用的场景 父组件向子组件中传值 父组件 子组件 父组件向子组件中传值分三步1、在父组件...

  • Vue组件传值

    vue组件传值 一、父组件向子组件传值方式: 1. 子组件中定义props,父组件向子组件props进行传值。 2...

  • Vue - 传值

    Vue 传值有两种:1)父组件向子组件传值(属性传值,Prop传值)2)子组件向父组件传值 一、父组件向子组件传值...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • Vue封装Echarts子组件 动态更新图表展示

    1、Vue.js中封装Echarts图表组件 2、父组件向子组件传值 3、子组件监听数据变化,更新图表

  • vue2.0的三种常用传值方式,并且如何实现?

    vue2.0 组件传值方式有三种:父组件向子组件传值,子组件向父组件传值,非父子组件传值 : 父传子: 首先现在父...

  • Vue父子组件之间的传值

    1、父组件向子组件传值 父组件中 子组件中 2、子组件向父组件传值 子组件中 父组件中

  • 04vue2.0-Vue组件化-组件间的数据传递

    Vue组件之间传值 父组件向子组件传值 1.父组件向子组件传值 父组件发送的形式是以属性的形式绑定值到子组件身上。...

  • 前端-vue框架学习笔记(二)-传值

    环境:vue-cli+webstorm 目录 1. 父组件向子组件传值 2. 子组件向父组件传值 3. 父组件向子...

网友评论

      本文标题:Vue中父组件向子组件echarts传值问题

      本文链接:https://www.haomeiwen.com/subject/nvajaltx.html