Vuex商店不更新状态

时间:2019-10-11 08:17:29

标签: javascript vue.js vuex

我的应用程序有一个小功能,如果用户单击特定的图像,则应将其从列表中删除并移至Vuex存储中的另一个图像。

这真的很简单:

// Action
  async movePicture({ commit }, data) {
    try {
      const comment = await this.$axios.$post('/photo-check', data)
      commit('MOVE_PHOTO', photoId)
    } catch (error) {
      throw error.response
    }
  },

  // Mutation
  MOVE_PHOTO: (state, id) => {
    const i = _.findIndex(state.list, p => p.id === id)
    if (i > -1) {
      const photo = state.list[i]
      state.list.splice(i, 1)
      state.visited.push(photo)
    }
  },

遗憾的是,这张图片无法从list拼接而来,我不明白为什么...也许我应该使用特定的东西来更新Vuex中的数组,但我不知道...也除此以外,我找不到其他解决方案...

1 个答案:

答案 0 :(得分:0)

JavaScript不能很好地处理这些情景。

您应该使用

this.$delete(state.list, index)

Vue.delete为您效劳。