vue2中子组件里利用slot引入另一个子组件时,这个子组件的ref怎么获取到

clipboard.png

clipboard.png

pop-up是一个弹出框的组件,弹出框内部有一个<slot></slot>供父组件插入模板,common-input是输入框的一个组件,当执行点击按钮弹出pop-up的方法时,this.$refs.popup可以获取到值,而this.$refs.input0位undefined。

clipboard.png

请问这个this.$refs.input0怎么获取到?

//编辑
直接console.log(this.$refs)和console.log(this.$refs.input0)的结果。

clipboard.png

在this.$refs中是存在input0的

当用一个计时器异步输出this.$refs.input0时是有结果的
clipboard.png

clipboard.png

请问这是什么原因?有没有更好的解决办法?

阅读 8.9k
4 个回答

你把0去掉试试

新手上路,请多包涵

我也是看答案的,遇到的问题和你类似,那个打印出来的如果不展开第一次是没有这个属性,Console显示的未必是最真实的。

新手上路,请多包涵

this.$refs.popup.$refs.input0

会不会是组件还没有渲染导致:

this.$nextTick(()=>{
    console.log(this.$refs.input0)
 })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题