我想弄清楚当状态被模块化时,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文件中导入state作为initialState,并试图在我的组件中把它恢复到初始状态。
问题是它并没有设置回初始状态,当突变被触发时,状态是不变的。
下面是我的 module-cart/state.js
文件。
export default function () {
return {
fileName: "",
sheetName: "",
}
}
And 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结构中为这个模块设置初始状态和工作状态?
看来你是把一个函数从 module-cart/state.js
. 你应该调用它来获取默认对象。
import initialState from './state.js';
export default {
resetState(state) {
Object.assign(state, initialState());
}
}
请注意我调用 initialState
.