3***@qq.com
3***@qq.com
  • 发布:2025-07-11 18:42
  • 更新:2025-07-11 20:53
  • 阅读:89

uniappX使用defineExpose暴露子组件方法,父组件无法调用问题!

分类:uni-app x

HBuilderX 4.66版本
VUE3
项目类型:uniappX

问题:使用defineExpose将自定义组件的方法暴露出去,经过反复尝试,父组件均无法调用!请问这是什么问题呢?急!!!
这个方法对于自定义组件与父组件通信来说非常重要,否则会有很多冗余代码。
各位大佬请帮忙看看这是什么问题,或者说能否用其他方式替代也行。

这是自定义组件lin-demo

<template>  
</template>  
<script setup>  
    /*自定义组件名称 lin-data */  
    const getMsg = () => "子组件"      //定义函数  
    defineExpose({  
        getMsg                  //暴露函数    
    })  
</script>

父组件:

<template>  
    <lin-date ref="myRef"></lin-date>   <!--调用子组件-->  
</template>  

<script setup>  
    /*父组件*/  
    const myRef = ref(null)  
    myRef.value?.getMsg()  
</script>

报错代码

error: Unresolved reference: getMsg‌
2025-07-11 18:42 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

你好 我测试是可以通过ref调用的
你运行的那个端?

3***@qq.com

3***@qq.com (作者)

感谢您的回复,我运行的是安卓端,并且按照您的方式重新写了一遍,依然会出现错误,我能看看您包括子组件的完整代码吗?

爱豆豆

爱豆豆 - 办法总比困难多

里面的index.uvue

3***@qq.com

3***@qq.com (作者)

我直接把您的代码完全拷贝,竟然也运行不了
我有点蒙了,不知道问题出在哪儿~完全蒙圈了

  • https://doc.dcloud.net.cn/uni-app-x/vue/component.html#page-call-component-method

    2025-07-12 09:55

要回复问题请先登录注册