【发布时间】:2021-04-20 00:53:43
【问题描述】:
我有以下 user.js 文件“有效”但需要改进:
import * as mutationTypes from "../mutation-types";
import user from "./user_data";
export const state = user;
export const getters = {
user: (state) => state
};
export const mutations = {
[mutationTypes.SET_USER]: (state, payload) => {
state.username = payload.username;
state.avatar=payload.avatar;
state.locale=payload.locale;
state.currency=payload.currency;
state.userid=payload.userid;
}
};
export const actions = {
setUser: ({ commit }, payload) => {
commit(mutationTypes.SET_USER, payload);
}
};
通过 axios 我收到了这个代表完整用户的有效负载,因此是状态:
payload:{
userid: "EA7FD2025132E3254A11FE70E9746A52",
username: "boss",
level: 6,
active: true,
company:'mySite ltd',
landingpage:'dashboard',
locale:'es',
currency:'eur',
subscriptionlevel:'',
subscriptionexpiry:'',
credits:0,
name: "John Doe",
email: "john.doe@mysite.com",
avatar: "/static/avatar/john.jpg",
job: "mySite - FOUNDER & CEO",
}
如何在不更新单个子参数的情况下完全更新状态 即是这样的:
export const mutations = {
[mutationTypes.SET_USER]: (state, payload) => {
state = payload;
}
};
我试过了
state = Object.assign({}, payload)
但它不起作用:-(
【问题讨论】:
标签: vuejs2