请考虑以下情形。
我有两个命名空间模块:moduleA
和moduleB
。它们都遵循类似的模式:
export default {
namespaced: true,
state: defaultState(),
actions: {
// ...
},
mutations: {
[SET_DATA] (state, data) {
state.data = data
}
}
}
然后,我希望能够通过一项操作来重置所有模块。我在根名称空间中提交了一个突变“ APP_RESET”:
commit(APP_RESET, null, { root: true})
在这一点上,我将在每个模块中添加以下内容:
[APP_RESET] (state) {
Object.assign(state, defaultState())
}
但是,现在正在处理的突变是:
moduleA
:moduleA
/ SET_DATA,moduleA
/ APP_RESET
moduleB
:moduleB
/ SET_DATA,moduleB
/ APP_RESET
是否可以设置我的名称空间模块,使其可以处理以下内容?
moduleA
:moduleA
/ SET_DATA,APP_RESET
moduleB
:moduleB
/ SET_DATA,APP_RESET
答案 0 :(得分:0)
我找到了答案。我不认为要在根名称空间上设置操作。例如
在非命名空间中:
dispatch(APP_RESET)
在我的每个模块中:
[APP_RESET]: {
root: true,
handler ({commit}) {
commit(RESET_MODULE_A)
}
}
在命名空间中:
dispatch(APP_RESET)
在我的每个模块中:
['namespaceOfDispatcherModule/' + APP_RESET]: {
root: true,
handler ({commit}) {
commit(RESET_MODULE_A)
}
}