父组件 在created阶段向后台请求数据
父组件向子组件传值
<nutrient :nudata="nutrientInfo"></nutrient>
子组件接收
created () {
console.log(this.nudata)
this.Na = this.nudata[3]
this.CF = this.nudata[1]
this.CHO = this.nudata[2]
this.PR = this.nudata[0]
this.energy =
(this.nudata[0].value * 4 +
this.nudata[1].value * 4 +
this.nudata[2].value * 9) *
4.18
},
props: ['nudata']
但是子组件并没收到值
可以看到在子组件接收的时候 父组件还没请求完成 这个应该怎么解决 在那个生命周期里写呢
原因:这个是因为 nudata 值得传递是一个异步过程,子组件的渲染在数据得到之前,当然得到的是undefined
解决:在
<nutrient :nudata="nutrientInfo" v-if="isDataReady"></nutrient>
isDataReady在数据获取到后置为true扩展:
Vue生命周期深入
Vue组件通信深入
Vue组件通信深入Vuex