从 Vuex 中的数组中删除特定项目
Remove a specific item from array in Vuex
我仍在学习 vue.js 并且正在进行一个小项目以帮助我了解有关使用 Vuex 创建更大规模应用程序的更多信息。
我 运行 遇到一个问题,我试图使用应用程序中的按钮从数组中删除特定项目;我似乎无法获得在 Vuex 中执行此操作的正确语法。这是我正在处理的内容:
商店
const state = {
sets: [{}]
}
export const addSet = function ({ dispatch, state }) {
dispatch('ADD_SET')
}
const mutations = {
ADD_SET (state) {
state.sets.push({})
},
REMOVE_SET (state, set) {
state.sets.$remove(set)
}
}
动作
export const removeSet = function({ dispatch }, set) {
dispatch('REMOVE_SET')
}
getters
export function getSet (state) {
return state.sets
}
应用程序
<div v-for="set in sets">
<span @click="removeSet">x</span>
<Single></Single>
</div>
我设置了一个操作,它将向数组添加一个空白项,当您单击 add item
按钮时,该数组将在应用程序中放置一个新组件,只是不确定如何添加 remove item
按钮到每个组件并使其工作。
我希望这是有道理的!
您需要修改 removeSet
函数以分派要从商店中删除的 set
对象:
export const removeSet = function({ dispatch }, set) {
dispatch('REMOVE_SET', set)
}
然后在您的组件中,您可以通过 @click
事件调用操作,但您需要传递 set
对象:
<div v-for="set in sets">
<span @click="removeSet(set)">x</span>
<Single></Single>
</div>
最后,不要忘记在您的组件中注册您的 getters
和 actions
:
vuex: {
getters: {
getSet
},
actions: {
addSet, removeSet
}
}
我仍在学习 vue.js 并且正在进行一个小项目以帮助我了解有关使用 Vuex 创建更大规模应用程序的更多信息。
我 运行 遇到一个问题,我试图使用应用程序中的按钮从数组中删除特定项目;我似乎无法获得在 Vuex 中执行此操作的正确语法。这是我正在处理的内容:
商店
const state = {
sets: [{}]
}
export const addSet = function ({ dispatch, state }) {
dispatch('ADD_SET')
}
const mutations = {
ADD_SET (state) {
state.sets.push({})
},
REMOVE_SET (state, set) {
state.sets.$remove(set)
}
}
动作
export const removeSet = function({ dispatch }, set) {
dispatch('REMOVE_SET')
}
getters
export function getSet (state) {
return state.sets
}
应用程序
<div v-for="set in sets">
<span @click="removeSet">x</span>
<Single></Single>
</div>
我设置了一个操作,它将向数组添加一个空白项,当您单击 add item
按钮时,该数组将在应用程序中放置一个新组件,只是不确定如何添加 remove item
按钮到每个组件并使其工作。
我希望这是有道理的!
您需要修改 removeSet
函数以分派要从商店中删除的 set
对象:
export const removeSet = function({ dispatch }, set) {
dispatch('REMOVE_SET', set)
}
然后在您的组件中,您可以通过 @click
事件调用操作,但您需要传递 set
对象:
<div v-for="set in sets">
<span @click="removeSet(set)">x</span>
<Single></Single>
</div>
最后,不要忘记在您的组件中注册您的 getters
和 actions
:
vuex: {
getters: {
getSet
},
actions: {
addSet, removeSet
}
}