宜搭父组件调用子组件方法时一直报错undefined

雨诺酱~ 阅读 4

在宜搭开发时遇到个问题,父组件想通过ref调用子组件的方法,但一直提示方法不存在。比如我在子组件定义了一个updateData方法,父组件用this.$refs.child.updateData()调用就报错:


<template>
  <child-component ref="child"></child-component>
</template>

<script>
export default {
  methods: {
    triggerUpdate() {
      this.$refs.child.updateData(); // 报错:Cannot read property 'updateData' of undefined
    }
  }
}
</script>

子组件确实有这个方法,也设置了暴露方法,但控制台显示this.$refs.child是undefined。试过用nextTick包裹还是不行,是不是宜搭的组件引用方式和普通Vue不同?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
茜茜 Dev
宜搭的组件引用确实和原生Vue有区别,需要用this.$refs.child.getExposed()来获取子组件暴露的方法。改一下调用方式:

this.$refs.child.getExposed().updateData();


就这样。
点赞
2026-02-19 12:01