【发布时间】:2018-07-26 20:26:09
【问题描述】:
我正在开发一个 Vue 应用程序。 它有一个标题,然后是主要内容。 嵌套和结构如下
TheHeader.vue -> TheLogin.vue
MainContent.vue -> ShoppingCart.vue -> OrderSummary.vue
我需要从OrderSummary.vue 访问TheLogin.vue 中的一个元素
this.$refs.loginPopover.$emit('open')
给我一个错误"Cannot read property '$emit' of undefined",所以很明显我无法从其他组件访问$refs。
问题是我如何从其他组件中获取 refs? 提前致谢!
编辑 1 - 发现 $refs 仅适用于子组件。 如何访问不同级别的组件中的元素?
【问题讨论】:
-
你可以试试
this.$root.$refs.header.$refs.login...,假设每个组件都有对其子组件的引用。听起来更像是像 VueX 或 event bus 这样的状态管理器的工作,但我不喜欢这些。 -
是的,我不想使用 Vuex,因为我只想在用户未登录时显示弹出框。简单的任务。
标签: javascript vue.js vuejs2 vue-component