Javascript Vue.js this.$nextTick()不';t似乎在等待dom呈现

Javascript Vue.js this.$nextTick()不';t似乎在等待dom呈现,javascript,vue.js,Javascript,Vue.js,我在Vue中使用nextTick()时遇到问题 以下是模板代码: 在模板中: {{someValue}} {{someValue}} ... 和脚本代码: data(){ 编辑:假 } ... 方法:{ 切换(){ this.editing=!this.editing; 如果(此。编辑){ 这是。$refs.theInput.focus(); } } } 当然,this.$refs.当我要求聚焦时,输入尚未呈现 到目前为止,我知道如何使其工作的唯一方法是添加超时,这是一个非常糟糕的解决方案

我在Vue中使用nextTick()时遇到问题

以下是模板代码: 在模板中:


{{someValue}}
{{someValue}}
...
和脚本代码:

data(){
编辑:假
}
...
方法:{
切换(){
this.editing=!this.editing;
如果(此。编辑){
这是。$refs.theInput.focus();
}
}
}
当然,
this.$refs.当我要求聚焦时,输入
尚未呈现

到目前为止,我知道如何使其工作的唯一方法是添加超时,这是一个非常糟糕的解决方案:

方法:{
切换(){
this.editing=!this.editing;
如果(此。编辑){
setTimeout(()=>this.$refs.theInput.focus(),100)
}
}
}
为了让它更干净,我尝试了这个,但结果是一样的:

方法:{
切换(){
this.editing=!this.editing;
如果(此。编辑){
这个.$nextTick(()=>{
这是。$refs.theInput.focus();
});
}
}
}
nextTick不应该在尝试关注输入之前等待dom呈现吗?
谢谢你的帮助。

找到了,$nextTick不在好地方。按如下方式移动它:

方法:{
切换(){
this.editing=!this.editing;
这个.$nextTick(()=>{
如果(此。编辑){
这是。$refs.theInput.focus();
};
});
}
}