问题出在您的Form.vue
组件中。准确地说,在这一行中:
<v-window v-model="$store.getters['form/formState'].value">
我不是 Vuetify 专家,所以我不知道为什么确切地用值v-window
更新,但它肯定会。我通过激活 Vuex严格模式发现了问题,该模式在某些状态在突变之外发生突变时会引发错误。它会抛出一个错误,从堆栈跟踪中您可以看到问题是由突变引起的v-model
createImageContent
v-window
$store.getters['form/formState'].value
Easy fix 不是v-model
使用:value
而是使用:
<v-window :value="$store.getters['form/formState'].value">
演示
更新
好的,我找到了原因。v-window
默认情况下有一个未记录的道具mandatory
(source)true
。在这种模式下,v-window
期望(并强制)至少有一个<v-window-item>
子组件始终处于活动状态。当您将 state 设置为 时idle
,没有<v-window-item>
这样的值,因此它会选择一个项目本身(首先不是禁用)并更新v-model
。所以另一个解决方案是添加:mandatory="false"
到<v-window>
.
但不使用v-model
可能更安全、更清洁,因为永远不应该使用 Vuex getterv-model