【发布时间】:2019-03-15 18:39:13
【问题描述】:
我正在尝试在 Vuex 中存储的多维数组中添加和删除项目。
数组是一组类别,并且每个类别又有一个子类别(无穷大,而不是简单的二维数组)。
示例数据集是这样的:
[
{
id: 123,
name: 'technology',
parent_id: null,
children: [
id: 456,
name: 'languages',
parent_id: 123,
children: [
{
id:789,
name: 'javascript',
parent_id: 456
}, {
id:987,
name: 'php',
parent_id: 456
}
]
}, {
id: 333,
name: 'frameworks',
parent_id 123,
children: [
{
id:777,
name: 'quasar',
parent_id: 333
}
]
}
]
}
]
....我的问题是,我如何最好地向这个数组添加和删除元素,它位于 Vuex 商店内?
我通常使用 Vue.Set() 操作 Vuex Store 中的简单数组以获得反应性。但是,因为我不确定被操作的嵌套数组有多深 - 我根本无法弄清楚。
这是一个我认为可以使用递归添加子类别元素的示例:
export const append = (state, item) => {
if (item.parent_uid !== null) {
var categories = []
state.data.filter(function f (o) {
if (o.uid === item.parent_uid) {
console.log('found it')
o.push(item)
return o
}
if (o.children) {
return (o.children = o.children.filter(f)).length
}
})
} else {
state.data.push(item)
}
}
【问题讨论】:
标签: arrays recursion multidimensional-array vuex mutation