【发布时间】:2018-12-21 06:55:09
【问题描述】:
我有从后端获取数据的父组件和多个子组件,它们只在父组件中绘制图表并需要后端数据。找不到答案 - 如何为父级的几个子组件提供道具?有什么例子吗?问题是只有第一个组件接收新数据,其他组件只接收来自父 data() return 的数据,但不从后端刷新。
这是父母:
<template>
<panel-group
:ticketsProp="tickets"
:airportsProp="airports"
:aircraftsProp="aircrafts"
:pilotsProp="pilots"></panel-group>
<el-row :gutter="32">
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<bar-chart :msg="message"></bar-chart>
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<pie-chart :disregardProp="disregard"></pie-chart>
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<persent-of-assessed :assessedProp="assessed"></persent-of-assessed>
</div>
</el-col>
</el-row>
data() {
return {
dataLoading: true,
dataFromDB: null,
message: 'This is test',
tickets: 0,
aircrafts: 0,
pilots: 0,
airports: 0,
assessed: 0,
disregard: 0
}
}
created() {
this.getData()
},
methods: {
getData() {
this.dataLoading = true
getDashboardStat().then(response => {
this.dataFromDB = response.data
this.listLoading = false
}).then(() => {
this.tickets = this.dataFromDB.ticketsAmount
this.airports = this.dataFromDB.airportsAmount
this.aircrafts = this.dataFromDB.aircraftAmount
this.pilots = this.dataFromDB.pilotsAmount
this.disregard = this.dataFromDB.sumOfDisregard
this.assessed = this.dataFromDB.percentOfAssessed
我认为不需要的子示例,因为他们获取数据,发送数据 id 错误的问题。
【问题讨论】:
-
您发布的代码似乎缺少某些部分。你能再检查一下吗?
-
更正:如果您使用 Vuex,请不要使用 props...
-
能发个sn-p代码吗?
-
谢谢大家!我的错误是我没有使用全局总线或Vuex,问题是父组件生命周期独立于子组件生命周期。
标签: javascript vue.js parent-child vuex