Nuxtjs / Vuex不适用于复杂对象

时间:2019-04-26 13:39:38

标签: vuex nuxt

当我尝试更改表单中的值时,我收到以下消息,尽管它适用于简单对象。

[vuex]不会在变异处理程序之外对vuex存储状态进行变异。

我有一个列表,我需要更新此列表中的寄存器,因此弹出一个填充的对话模式,需要更改或不更改字段,然后单击并保存更改,如果我关闭该模式而没有保存更改,这些值必须与以前相同。

我的表格

<v-layout wrap>
 <v-flex xs12 sm6 md4>
 <v-text-field  v-model="editedItem.personnel.name" label="Name"></v-text-field>
</v-flex>
<v-flex xs12 sm6 md4>
<v-text-field v-model="editedItem.personnel.email" label="Email"></v-text-field>
</v-flex>
export default {
  name: "TheDealerPersonnel",
  components: { TheContentTitle },

  data: () => ({
    title: "Dealer Personnel",
    dialog: false,
    options: [],
    editedItem: {
      perosonneldealershipid: Number,
      dealerID: Number,
      personnelID: Number,
      dealer: Object,
      personnel: {
        personnelID: Number,
        name: String,
        email: String,
        companyID: Number,
        roleiD: Number,
        company: Object,
        role: {
          roleiD: Number,
          description: String,
          ranking: Number
        }
      }```

1 个答案:

答案 0 :(得分:0)

发生此错误的原因不是因为对象很复杂,而是因为您试图更改vuex状态而不是使其发生突变,

我不确定是否是导致问题的表格,但是我猜您正在更改应用程序中的vuex状态。...

要更改vuex状态,您必须创建突变并提交更改

export const mutations = {
    SET_CHANGE: (state,change)=>{
       state.item = change
    }
}

可以由commit('SET_CHANGE')

调用