【发布时间】:2018-04-06 15:30:34
【问题描述】:
我正在尝试将现有的 Vuex 状态转换为模块。我正在尝试使用这样的模块:
const moduleA = {
state: {},
mutations: {
update (state, payload) { // payload is an object
state = payload // doesn't work
}
},
我正在注册模块:
const store = new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
})
问题是:是否可以像我尝试的那样在不嵌套的情况下使用状态?或者唯一的方法是有类似的东西:
const moduleA = {
state: {
one: {}
},
mutations: {
update (state, payload) {
state.one = payload // it works
},
},
}
理想情况下,我希望拥有与以前相同的结构,并且能够以state.a 而不是state.a.one 获得状态
谢谢
【问题讨论】:
-
如果你替换了完整的状态,你会失去 Vue 的响应性。您是否尝试过使用
Object.assign(state, payload)而不是state = payload? -
您解决了这个问题吗?我现在正面临这个问题。