出现这个的原因是获取的元素没有出来 等同于undefined.foucus

以ref获取元素为例this.$refs.ipt.focus()

直接写该代码会报错

解决办法一:在外面加定时器

解决办法二:$nextTick

<template>
  <div>
    <button v-if="isShow" @click="tabFn">按钮</button>
    <input ref="ipt" v-else type="text" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      isShow: true,
    };
  },
  methods:{
    tabFn(){
      this.isShow=false
      // 方法一
      // setTimeout(() => {
      //   this.$refs.ipt.focus()
      // }, 500);
      // 方法二
      this.$nextTick(()=>{
        this.$refs.ipt.focus()
      })
    }
  }
};
</script>

<style>
</style>

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐