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
4 个回复
爱豆豆 - 办法总比困难多
你好 我测试是可以通过ref调用的
你运行的那个端?
3***@qq.com (作者)
感谢您的回复,我运行的是安卓端,并且按照您的方式重新写了一遍,依然会出现错误,我能看看您包括子组件的完整代码吗?
爱豆豆 - 办法总比困难多
里面的index.uvue
3***@qq.com (作者)
我直接把您的代码完全拷贝,竟然也运行不了
我有点蒙了,不知道问题出在哪儿~完全蒙圈了
罒
https://doc.dcloud.net.cn/uni-app-x/vue/component.html#page-call-component-method
2025-07-12 09:55