javascript - 仅在加载数据后显示子组件
问题描述
在我的父组件中,我有:
<v-container fluid>
<ResultsPanel ref="results" />
</v-container>
结果面板是:
<template v-if="showResults">
<v-container > IM SHOWIN!</v-container>
</template>
<script>
export default {
name: "ResultsPanel",
data: () => ({
fiData: [],
analysisData: [],
}),
computed: {
showResults() {
return (this.analysisData && this.analysisData.length > 0)
}
}
}
</script>
我想使用:
this.$ref.resultsTable.analysisData = [some, returned, data,]
在 axios 调用返回以导致结果面板显示后,在父组件中。在设置之前,当 analysisData 为 [] 时,它希望隐藏整个 ResultsPanel 组件。我怎样才能做到这一点?
目前,无论数据是否存在,组件都会显示。如果我将 v-if 移动到 v-container 中,即使将数据添加到组件中,它也不会显示。
解决方案
使用这样的道具:
父组件:
<v-container fluid>
<ResultsPanel ref="results" :analysisData="analysisData" v-if="showResults"/>
</v-container>
...
data: () => ({
analysisData: []
}),
computed: {
showResults() {
return (this.analysisData && this.analysisData.length > 0)
}
}
...
methods: {
setData () {
this.analysisData = [some, returned, data,]
}
}
子组件:
<template>
<v-container > IM SHOWIN!</v-container>
</template>
<script>
export default {
name: "ResultsPanel",
props: {
analysisData: {
type: Array,
default: () => []
},
data: () => ({
fiData: [],
})
}
</script>```
推荐阅读
- java - Hibernate 更新调用在 @OneToOne 映射中生成新行
- macos - docker.bintray.io/jfrog/artifactory 7.18.6 版本运行失败
- python - 如何在 AWS lambda 上为 python 3.8 安装 Pillow?
- sms - SMS电子邮件网关删除标题中的“FRM”和“MSG”
- sql - Oracle Sql 非重复列数据
- vim - 使用 spice 语法打开 cir sp sim
- reactjs - TypeError:Android 模拟器中的网络请求在本机反应中失败
- python - 在熊猫数据框中使用 groupby 时如何保留所有数据字段?
- ios - 如何为在 iPad 上运行的 iPhone SwiftUI 应用程序锁定纵向方向?
- powershell - 如何在 gmail powershell 脚本中设置一周到期的机密模式?