动态组件添加ref的问题

需求:

有一组动态组件,为其添加ref。希望通过$refs标记引用组件中的变量和方法。


在子组件中,有:


<div v-for=(item, index in items) ref="myref">

    ...

</div>

在其它组件中,我可以通过this.$refs.myref[i]...的代码引用组件中的变量和方法。但是,如果动态增减items数组的元素,则不能通过这种方法调用。Vue的文档中也明确说明了,$refs是非反应式的,不会变化。新增的ref也的确不起作用。


问题:

遇到这种情况,我如果想在上层组件中调用子组件中的method,还有其他方法吗?

(我想尝试使用事件总线注册子组件方法,但想不出具体的做法。)


不知道大家有没有什么好的办法,谢谢!


holdtom
浏览 2683回答 1
1回答

守候你守候我

子组件 :props: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fatherData:{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:Array&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; },watch:{&nbsp; &nbsp; fatherData(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doSomething();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.$emit("sonDo",data);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }父组件:@sonDo="sonDo"methods:{&nbsp; &nbsp; sonDo: function (sonData) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript