首页 > 解决方案 > Vuex:将存储状态擦除回空数组

问题描述

我有一个调用 Vuex 存储状态scannedList,初始状态是[]

state: {
  scannedList: []
}

我有一个将 id 推送到数组的突变。我试图将所有状态清除回一个空数组:

store.commit('addToScannedList', [])

但 id 仍然保留在数组中。实现此目的的正确方法是什么?

标签: javascriptvue.jsvuejs2vuex

解决方案


将空数组推入数组不会清除它。您可以进行新的突变:

resetScannedList(state) {
  state.scannedList = [];
}

或者,如果您不传递有效负载,您可以在现有突变中设置一个条件来清除它:

addToScannedList(state, item) {
  if(item !== undefined) {
    state.scannedList.push(item);
  } else {
    state.scannedList = [];
  } 
}

您将store.commit('addToScannedList')在没有有效负载的情况下触发


推荐阅读