需求:一个对象
const state = {
user: {
verify: {
state: 0
}
}
}
我需要使用类似({ '': 1 })
这种写法直接获取或修改state[]
的值。不知道别人怎么写的,我的写法如下:
const mutations = {
set(state, params) {
Object.keys(params).forEach(key => {
// 需要替换的值
const val = params[key];
const arr = key.split(".");
if (arr.length > 1) {
let obj = state;
while ((arr.length - 1) && (obj = obj[arr.shift()]));
obj[arr[0]] = val
} else {
state[key] = val
}
})
}
}
这样想要修改state
中任意一个对象,就非常方便了。