Vuetify的自动对焦仅适用于第一模态打开

Tar*_*epp 13 javascript vue.js vuejs2 vuetify.js

我正在尝试使用Vuetify,v-text-field autofocus但它只是第一次使用.关闭对话框后,它不再起作用了.

这就是我想要做的:

<v-text-field ref="focus" autofocus></v-text-field>
Run Code Online (Sandbox Code Playgroud)

谷歌搜索时我发现这是一个在某些版本中修复的错误,但他们有临时解决方案我也尝试过:

watch: {
     dialog: (val) ->
         if !val
             debugger
             requestAnimationFrame( =>
                @$refs.focus.focus()
             )
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么或者它仍然是一个错误?设置断点我看到它在那一刻停止了.任何人都能引导我走向正确的方向吗?

我唯一的区别是我使用的是Vuex,对话框变量在Vuex存储中.对话框是getter/setter.

dialog:
   get: ->
       return this.$store.state.my_store.isDialogOpen
   set: (value) ->
      this.$store.commit('my_store/MY_MUTATION', value)
Run Code Online (Sandbox Code Playgroud)

Tar*_*epp 15

对我来说唯一有用的是v-if="dialog"因为自动对焦道具只适用于初始加载,这就是为什么它仅在我第一次打开对话框时才可用.

因此,在对话框中使用自动对焦的工作v-tex字段看起来像这样:

<v-text-field label="Label" v-if="dialog" autofocus></v-text-field>
Run Code Online (Sandbox Code Playgroud)