javascript - 如何修复 VUEX 中的状态变化?

标签 javascript vue.js vuejs2 vuex store

我在从另一个数组拼接元素然后更改状态时更改状态时遇到问题。明确一点,我不想改变状态,只想拼接数组 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)
    }
  })
}

最佳答案

下一段代码解决了问题

export const SHOW_RESULTS_WHEN_NOTHING = (state) => {
let selectedFilters = {...state.selected.filters},
    arrayWithFilters = [];

let selectedFiltersCopy = JSON.parse(JSON.stringify(selectedFilters));

arrayWithFilters = Object.values(selectedFiltersCopy);

arrayWithFilters.forEach((filter) => {

    if (filter.values.includes('qcontrast')) {

        filter.values.splice('qcontrast', 1);

    }
})

console.log(arrayWithFilters)

关于javascript - 如何修复 VUEX 中的状态变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56372781/

相关文章:

javascript - (Nuxt) Vue 组件在页面刷新之前不会显示

javascript - Vuex - 突变后获取状态

javascript - Vuex - 跨模块共享通用功能

javascript - 使用 CSS 在 HTML 中模糊 Img 和 Div

javascript - 快速路由——路由到/secrets时出现404错误,我错过了什么

用数组处理javascript字符串为什么它在控制台上打印 'r'而不是 'z'

javascript - 是否有用于设置值的最大或最小限制的 JS 短语法

javascript - 过滤输入文本以仅输入数字而不是小数

javascript - Vue - 监听 Prop 变化(对象),观察不触发

vue.js - Vuetify 外部分页不显示页码