需求如下:

addbugs为一个抽屉组件,我需要在点击按钮时调用add方法打开抽屉

但是报错了:

打印出ref值,发现是

这是怎么回事呢???

原来,__v_skip: true 是 Vue 3 中的一个特殊属性。当一个组件被标记为 __v_skip: true 时,Vue 将不会对该组件进行渲染,也不会将其添加到虚拟 DOM 树中,自然也就无法通过 ref 获取其方法。

之前这样使用ref时也没有报过这样的错误啊,为什么会有__v_skip: true 这个属性呢?

原因如下:
正常使用ref的写法: 

父组件:

子组件:

已经通过返回的对象暴露了showDrawer方法。

那么不改变写法的情况如何解决?

方法如下:

在子组件中引入defineExpose方法,对需要暴露出去的属性进行暴露

就可以正常使用啦!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐