vue3中插槽传到组件内部的,怎么才能获取到ref
问题描述
我尝试做一个popover组件,大致参考element ui 使用插槽做,但是发现插槽传过去的没法获取到ref。
相关代码
调用
组件里:
组件data:
尝试的方法
拿不到... slots返回的是一个虚拟节点 尝试手动挂载无果...
...提问三十分钟后自行曲线救国解决了 但仍想知道答案。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
父组件的ref只能通过父组件获取,父组件获取自己的实例传到子组件
父组件
import {getCurrentInstance} from 'vue'
let instance=getCurrentInstance()
<child :ins="instance">
<input ref="input"/>
</child>
子组件
setup(prop,ctx){
prop.ins.refs.ins//这就是slot传过来的input的ref
}
试一下
如果多个插槽
vue3中,我也遇到这样的封装组件问题,想知道最后你的解决方案是哪一个!
我也有遇到这种场景, 是用<component :is="$slots.default()[0]"></component>这样实现的,但是要用作用域插槽就gg了...