Если вы просматриваете документацию для dispatch , 2-й аргумент payload
может быть любого типа.Это не обязательно должна быть диспетчеризация объекта , вложенная в свойство:
Отправка:
store.dispatch('currentUser', response[0]);
Хранение:
state: {
currentUser: undefined
},
mutations: {
setCurrentUser(state, currentUser) {
state.currentUser = currentUser;
}
},
actions: {
currentUser(context, payload) {
context.commit('setCurrentUser', payload);
}
}
Мутация:
setCurrentUser(state, currentUser) {
state.currentUser = currentUser;
}
Вот пример в действии.
Обновление:
Если вместо целидля объединения / обновления изменений, вы можете использовать распространение в объектных литералах .Это также упоминается в документации Vuex для Мутации. Следуйте правилам реактивности Vue .
Отправка:
store.dispatch('currentUser', { systemLanguage: response[0].systemLangId });
Хранение:
state: {
memberData: { systemLanguage: 'foo' }
},
mutations: {
updateCurrentUser(state, updates) {
state.memberData = { ...state.memberData, ...updates };
}
},
actions: {
currentUser(context, payload) {
context.commit('updateCurrentUser', payload);
}
}
Здесь пример этого в действии.
Надеюсь, это поможет!