Я пытаюсь найти метод, который может вернуть состояние модуля обратно к некоторому начальному значению, и до сих пор у меня возникают некоторые концептуальные проблемы.
Мой базовый склад выглядит следующим образом:
const store = new Vuex.Store({
modules: {
moduleA: moduleA,
},
actions: {
resetAllState: ({ dispatch }) => {"moduleA");
},
resetModuleState: (currentModule) => {
// Perform the reset here...somehow?
}
}
});
Хранилище moduleA.js
создается следующим образом с intialState
:
const initialState = () => ({
helloWorld: {}
});
const moduleA = {
namespaced: true,
state: {
initialState: initialState(),
...initialState(),
}
};
export default moduleA;
Поэтому я использую оператор спреда для создания следующего:
const moduleA = {
namespaced: true,
state: {
initialState: initialState(),
helloWord: {}
}
};
Затем я могу мутировать state.helloWorld
, сохраняя при этом копию state.initialState
...
Итак, мой вопрос сейчас в следующем глобальном хранилище
resetModuleState: (currentModule) => {
// Perform the reset here...somehow?
}
action Как мне на самом деле выполнить сброс?
Я пробовал это как глобальный способ сброса состояния:
resetAllState: function() {
let defaultState = {};
Object.keys(store.state).forEach((key) => {
defaultState = {
...defaultState,
[key]: store.state[key].initialState ? store.state[key].initialState : store.state[key],
};
});
store.replaceState(Object.assign({}, defaultState));
},
Но не повезло ...?