【发布时间】:2019-05-30 06:25:35
【问题描述】:
我在从另一个数组拼接元素然后状态改变时改变状态时遇到问题。明确一点,我不想改变状态,只想从数组arrayWithFilters = []拼接一个元素@
export const SHOW_RESULTS_WHEN_NOTHING = (state) => {
let selectedFilters = {...state.selected.filters},
arrayWithFilters = []; //Making splice from this array, but it also removes from state.selected.filters.
for (let filter in selectedFilters) {
arrayWithFilters.push(selectedFilters[filter])
}
arrayWithFilters.forEach((filter) => {
if (filter.values.includes('qcontrast')) {
filter.values.splice('qcolor', 1);
console.log(filter)
}
})
}
【问题讨论】:
-
arrayWithFilters声明在哪里?即,let arrayWithFilters或var arrayWithFilters在哪里? -
您的问题是您只是在制作
state.selected.filters的浅表副本。每个filter中的values仍将引用相同的(数组)对象引用
标签: javascript vue.js vuejs2 vuex store