elementplus的dialog组件里写form组件,vue3项目在打开弹框的时候,拿不到proxy.$refs.formRef这个组件实例对象,原因是dialog组件是懒加载的

elementplus的dialog组件里写form组件,vue3项目在打开弹框的时候,拿不到proxy.$refs.formRef这个组件实例对象,原因是dialog组件是懒加载的,在打开dialog组件之前,写在dialog组件里的插槽内容的dom元素是拿不到的,也就是form组件的dom元素是拿不到的

解决方法:

在dialog组件的open事件函数中,拿proxy.$refs.formRef组件实例对象,这才能拿到

注意:

在setup中getCurrentInstance不需要导入,直接用

elementplus的dialog组件里写form组件,vue3项目在打开弹框的时候,拿不到proxy.$refs.formRef这个组件实例对象,原因是dialog组件是懒加载的_第1张图片

const { proxy } = getCurrentInstance();

const handleOpen=()=>{
    // Dialog 的内容是懒渲染的,即在第一次被打开之前,传入的默认 slot 不会被渲染到 DOM 上。因此,如果需要执行 DOM操作,或通过 ref 获取相应组件,请在 open 事件回调中进行。
    console.log("打开");
    console.log(proxy.$refs.formRef,"proxy.$refs.formRef");
}

你可能感兴趣的:(1024程序员节)