【问题标题】:Nuxtjs /Vuex is not working with complex objectsNuxtjs /Vuex 不适用于复杂对象
【发布时间】:2019-09-16 01:03:13
【问题描述】:

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

[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
        }
      }```

【问题讨论】:

  • 我假设您正在以某种方式将商店状态中的某些内容分配给您的数据项“editedItem”。您能否展示一下您是如何做到这一点的。

标签: vuex nuxt.js


【解决方案1】:

这个错误的发生不是因为对象很复杂,而是因为你试图改变 vuex 的状态而不是突变,

我不确定它是否是导致问题的表单,但我猜你是在你的应用程序的某个地方你正在更改 vuex 状态....

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

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

可以被commit('SET_CHANGE')调用

【讨论】:

  • 谢谢,我使用的是模态,点击保存后我想提交。当我尝试更改像 personID 这样的字段时,效果很好。我还没发现问题。
猜你喜欢
  • 2020-03-21
  • 1970-01-01
  • 2017-09-21
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
相关资源
最近更新 更多