vuejs里使用了v-if后 this.$refs无法获取ref的值

我用的是elementui里面的tag标签:
https://element.eleme.cn/#/zh...
image.png

里面使用了v-if。用到项目里面。
提示ref里面的saveTagInput未定义。
v-if this.$refs无法获取ref的值。
请问怎样才能获取这个ref的值呢?

image.png
image.png
报错信息:
Error in nextTick: "TypeError: Cannot read property '$refs' of undefined"

阅读 18.9k
5 个回答

把 v-if 改成 v-show,并且

 this.$nextTick(()=>{
    \\调用refs
 });
 this.$nextTick(()=>{
       setTimeout(()=>{
         // ....再加个计时器试试,应该可以了
       })
    })
新手上路,请多包涵

这个错误提示很明显是绑定$refs的元素或组件不存在导致的,建议理清楚业务逻辑再编码,另外根据你贴的代码图,你似乎想要调用el-input这个组件的子组件上的focus()方法,根据 element-ui的定义el-input组件是不存在子组件的,所以你直接以 this.$refs.target.focus();调用即可,还有如果你的showInput方法是点击调用的话你大可不必使用nextTick,因为当你想要调用methods时 你的视图都已渲染完毕

新手上路,请多包涵

$refs绑定的值还是获取不上啊

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题