解决vue prop 值异步获取问题

今天碰到vue开发父子组件prop传参的问题,情况是这样的:子组件需要一个参数value(以后均有该参数表示父子组件的参数),所需value需由父组件通过prop传入,父组件中的value初始值为空,在created钩子函数中发起http请求获取数据然后更新value,结果子组件在created钩子函数无法获取到该参数

分析:

父组件由于是异步获取的,但是传参的时候是在获取数据之前

解决思路:

子组件加一个显示条件,核心思路就是:当所有的请求都已经成功请求到的时候,子组件再显示

代码

子组件加上: v-if="loadAll === 3" 

请求完成后加上:this.loadAll++

父组件代码如下:


<template>
  <TTTable v-if="loadAll === 3" :value="value" :column="column">
  </TTTable>
</template>
<script>
import TTTable from '@/components/TTTable'
import * as requestFun from '@/api/user'

export default {
  name: 'InspectionPlan',
  components: { TTTable },
  data() {
    return {
      loadAll: 0,
      value: {}

    }
  },
  beforeCreate() {
  },
  created() {
    this.initColumn()
  },
  methods: {
    initColumn() {
      var THIS = this
      this.coreList({ name: 'inspection_plan', type: 'inspection_plan_period' }).then(function(response) {
         value.XX=response.XX
        THIS.loadAll++
      })
      this.coreList({ name: 'inspection_plan', type: 'state' }).then(function(response) {
       value.XX=response.XX
        THIS.loadAll++
      })
      // requestFun.inspectionRouteManageList()
      this.coreList({ name: 'inspection_plan', type: 'sign_type' }).then(function(response) {
      value.XX=response.XX
        THIS.loadAll++
      })
    }
  }
}
</script>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值