Vuex 的 state 是一个对象,不能直接修改 state 的值,需要使用 mutations 来修改 state 的值。这里简单实现一个类似于 React 的 setState 的方法,实现修改 state 的值。
export default {
namespaced: true,
state: {
selectItem: {}, // 搜索选中的数据
},
mutations: {
/**
* @description 修改 state 值
*/
setState(state, data) {
if (!(Object.prototype.toString.call(data) === '[object Object]')) return
for (let [key, value] of Object.entries(data)) {
// Object.hasOwnProperty.call(state, key) && (state[key] = value)
Object.hasOwn(state, key) && (state[key] = value)
}
},
},
}