<template>
<RecyclablesPopup ref="LVP" class="inline-block m-5px"></RecyclablesPopup>
</template>
<script setup>
import RecyclablesPopup from "../components/popups/RecyclablesPopup";
import { ref } from 'vue';
const LVP = ref(null);
// ... after mounted I have an event with a legacy component and onclick handler:
eventClick: function(calEvent)
{
console.log(LVP.value);
LVP.value.click();
}
</script>
最后,单击后得到Uncaught TypeError: LVP.value.click is not a function
。console.log
按预期返回代理对象Proxy { <target>: Proxy, <handler>: {…} }
为什么我不能调用click()
?
3条答案
按热度按时间lnlaulya1#
click
函数应该由子组件公开,以便由父组件访问:可回收弹出组件
有关详细信息,请访问https://vuejs.org/guide/essentials/template-refs.html#ref-on-component
4szc88ey2#
如果您正在使用**脚本设置 *,,则无法访问在引用组件内定义的函数、变量等。要更改此设置,必须使用 RecyclablesPopup 组件内的 defineExpose 编译器宏-请查看文档中的详细信息
zujrkrfu3#
您需要在
onMounted
生命周期中执行该函数,以保证组件被挂载到DOM,因为组件挂载之前的值是未定义的。获取更多资源
https://vuejs.org/api/composition-api-lifecycle.html#onmounted