【发布时间】:2019-09-14 10:27:07
【问题描述】:
请帮帮我。我正在使用带有动态组件加载的打字稿开发 Vue js 项目。我用来从数组加载组件名称,每个组件都有一个父包装器组件,并且在我用来渲染子组件的包装器内部。现在我想访问从包装组件中加载的子组件的方法。
我尝试了 $slot 功能,但没有运气,我也尝试了事件总线,但随后在多个子组件中调用方法。
<Wrapper>
<component :is="propsData.componentName" :key="key"></component>
</Wrapper>
在侧 Wrapper 组件中
<div class="container">
<slot></slot>
</div>
当某些事件发生时,我想从 Wrapper 组件调用动态加载组件中编写的方法。
【问题讨论】:
-
你必须避免这样调用方法,这是一种不好的做法。尝试使用 Vuex 使用事件,它更好更干净。
-
是的@Luis,我正在使用 Vuex 存储将数据传递给动态组件,但现在我想从父组件调用子方法,并且子组件是动态加载的。在父组件的槽中。
-
您的子组件对 VueX 数据更改做出反应,您可以使用这种方法在子组件中调用您想要的任何内容。让孩子们观看 VueX 道具,然后做他们需要做的事情。这适用吗?
-
@SuhasBhosale 如果您碰巧找到问题的解决方案或想分享您自己的解决方案,请随时回答您自己的问题并接受它作为答案。这样每个人都可以学习,问题就不会悬而未决。
-
@etarhan 我目前正在使用
this.$children[1][childmethod](),但我想要事件驱动的解决方案。我还没找到。
标签: vue.js