模块存储重置为状态

时间:2020-04-24 09:16:59

标签: vue.js vuejs2 vuex

我试图弄清楚状态模块化后重置如何与VueX存储一起工作。 这是我的VueX结构:

└── store
    ├── index.js              
    └── module-cart
         ├── index.js         
         ├── actions.js       
         ├── mutations.js
         ├── state.js         
         ├── getters.js        

所以我想将此当前模块的状态重置为原始状态。

我在module-cart/mutations.js文件中创建了以下突变:

import initialState from './state.js';
export default {
  resetState(state) {
    Object.assign(state, initialState);
}
}

因此,我从state.js文件中将该模块的状态导入为initialState,并尝试在组件中将其设置回初始状态。

问题是它没有恢复到初始状态,触发了突变时状态保持不变。

这是我的module-cart/state.js文件:

export default function () {
  return {
    fileName: "",
    sheetName: "",
  }
}

还有module-cart/index.js

import state from './state'
import getters from './getters'
import mutations from './mutations'
import actions from './actions'


export default {
    namespaced: true,
    state,
    actions,
    mutations,
    getters
}

我认为我缺少一些东西,但不确定。如何在此模块的这种VueX结构中设置初始状态和工作状态?

1 个答案:

答案 0 :(得分:1)

似乎您正在从module-cart/state.js导出函数。您应该调用它以获取默认对象。

import initialState from './state.js';
export default {
  resetState(state) {
    Object.assign(state, initialState());
 }
}

通知我打initialState