【发布时间】:2022-01-19 17:54:52
【问题描述】:
我无法从子组件访问父方法。我按照official document 所说的做了。
父模板:
<template>
<v-app>
<v-sheet height="100vh">
<v-sheet height="100vh" class="overflow-y-auto">
<div ref="ComponentDisplay" :is="currentComponent"></div>
</v-sheet>
<DrawerComponent></DrawerComponent>
</v-sheet>
</v-app>
</template>
<script>
export default {
name: 'Dashboard',
data: function () {
return {
currentComponent: null
}
},
methods: {
displayComponent (component) {
this.currentComponent = component
}
}
}
</script>
抽屉组件:
export default {
name: 'DrawerComponent',
methods: {
exit: function () {
logout()
},
swapComponent: function (component) {
this.$parent.displayComponent(this.components[component])
}
},
data: () => ({
drawer: false,
group: null,
mini: true,
components: {}
}),
watch: {
group () {
this.drawer = false
}
}
}
</script>
在线:
this.$parent.displayComponent(this.components[component])
出现以下错误:
TypeError: this.$parent.displayComponent 不是函数
【问题讨论】:
-
你误解了 Vue 组件通信模型。组件通过 props 获取数据,并仅通过事件与外界通信。组件的整个思想就是封装,即组件除了自身之外什么都不知道。
-
@connexo,是的,我刚开始使用
Vue,很多东西都不知道。
标签: vue.js