模块存储恢复到状态

问题描述 投票:1回答:1

我想弄清楚当状态被模块化时,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结构中为这个模块设置初始状态和工作状态?

vue.js vuejs2 vuex
1个回答
1
投票

看来你是把一个函数从 module-cart/state.js. 你应该调用它来获取默认对象。

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

请注意我调用 initialState.

© www.soinside.com 2019 - 2024. All rights reserved.