vue3使用ref调用子组件方法报错:ditTenderRef.value.openDialog is not a function

vue3使用ref调用子组件方法报错:ditTenderRef.value.openDialog is not a function

在vue3中使用子组件中的方法,和vue2类似

  1. 组件设置ref值

javascript"><ChildVue ref="childRef" />
  1. 组件实例获取,定义和上面ref相同的值

const childRef = ref<any>();
  1. 在父组件自定义方法内直接调用

// 调用子组件方法
childRef.value.foo(); // foo

但是如果你的setup是写在script标签里面的,则会报以下错误

childRef.value.foo is not a function

所以还需要第4步

4.子组件内设置对外公开的变量

上面第2步获取到子组件实例后,无法使用子组件内的方法,因为使用 <script setup> 的组件默认是关闭的,如果需要公开,需要使用 defineExpose 编译器宏。

// 子组件代码
const foo = () => {
  console.log("foo");
}
defineExpose({
  foo
});

转载请说明出处内容投诉
CSS教程_站长资源网 » vue3使用ref调用子组件方法报错:ditTenderRef.value.openDialog is not a function

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买