Vuejs2 从vuex存储更新渲染模板中的数据
我正在使用Vuejs2 从vuex存储更新渲染模板中的数据,vuejs2,vuex,vuetify.js,Vuejs2,Vuex,Vuetify.js,我正在使用vue、vuetify和vuex做一个简单的crud。但我在更新已在模板中呈现的数据时遇到问题,我的存储状态中的突变正常工作,因此这些更改应在我的模板中更新,但它们保持以前的状态,vuex中的状态不是反应性的?如果有任何变化,他们不应该倾听,改变它的价值吗 这是我的模板,我使用我的存储中的getter在表中进行迭代: <v-data-table :headers="headers" :items="categories" :search="search" > <
vue
、vuetify
和vuex
做一个简单的crud。但我在更新已在模板中呈现的数据时遇到问题,我的存储状态中的突变正常工作,因此这些更改应在我的模板中更新,但它们保持以前的状态,vuex中的状态不是反应性的?如果有任何变化,他们不应该倾听,改变它的价值吗
这是我的模板,我使用我的存储中的getter在表中进行迭代:
<v-data-table
:headers="headers"
:items="categories"
:search="search"
>
<template slot="items" slot-scope="props">
<td>{{ props.item.name }}</td>
<td>{{ props.item.description }}</td>
<td>
<v-btn icon class="mx-0" @click="editItem(props.item)">
<v-icon color="teal">edit</v-icon>
</v-btn>
<v-btn icon class="mx-0" @click="deleteItem(props.item)">
<v-icon color="pink">delete</v-icon>
</v-btn>
</td>
</template>
</v-data-table>
这是我存储的一个总结,正如我之前提到的,我执行的所有突变都会工作,状态会根据发生的突变类型进行修改,但这并没有反映在我的模板中,vuex中有一些我没有正确处理的东西吗
const state = {
categories: []
}
const mutations = {
GET_CATEGORIES(state, categories) {
state.categories = categories.reverse()
},
ADD_CATEGORY(state, category) {
state.categories.unshift(category)
},
UPDATE_CATEGORY(state, category) {
const index = state.categories.findIndex(x => x.id == category.id)
state.categories[index] = { ...state.categories[index], ...category }
},
DELETE_CATEGORY(state, category) {
state.categories.splice(category, 1)
}
}
您正在使用MapGetter,但我在您的代码中没有看到任何Getter 在此处阅读有关getter的信息: 在此处阅读如何将状态映射到道具: 关于这一行的一个重要注意事项是state.categories[index]={…state.categories[index],…category} 了解Vue中阵列和对象的反应性:
希望能有所帮助。我正在正确导出我的getter,我在我的商店中共享的代码只是一个摘要,我的所有变体也能正常工作。我的问题是这些变化没有反映在我的报告中template@FeRcHo可以我刚提了一个建议。但是如果没有实际的代码,很难说里面发生了什么。
const state = {
categories: []
}
const mutations = {
GET_CATEGORIES(state, categories) {
state.categories = categories.reverse()
},
ADD_CATEGORY(state, category) {
state.categories.unshift(category)
},
UPDATE_CATEGORY(state, category) {
const index = state.categories.findIndex(x => x.id == category.id)
state.categories[index] = { ...state.categories[index], ...category }
},
DELETE_CATEGORY(state, category) {
state.categories.splice(category, 1)
}
}