出现这个的原因是获取的元素没有出来 等同于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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐