Из документов :
Мутации должны быть синхронными
Следует помнить одно важное правило, что функции обработчика мутаций должны быть синхронный
Похоже, вы перевернули их. Перестройте свое действие и мутацию в:
Действие
export const actions = { // <-- was missing an equals
...
async update_user({ state, commit }) { // <-- state and commit needed
if (state.token == undefined) {
return
}
if (this.$axios.defaults.headers.common["authorization"] == undefined) {
this.$axios.defaults.headers.common["authorization"] = state.token
}
var user = await this.$axios.get("/api/v1/user/@me");
commit("update_user", user); // <-- Passing the user data to the mutation
}
}
Мутация
export const mutations = {
update_user(state, user) {
state.user = user;
},
}
Также обратите внимание, что асинхронное действие c возвращает данные, которые затем передаются в мутация, где он установлен в состояние. Вы также можете иметь ошибку с this.$axios
, как только это исправлено. Если это так, убедитесь, что вы импортируете его:
import axios from 'axios';
и используете его следующим образом:
if (axios.defaults.headers.common["authorization"] == undefined) {
axios.defaults.headers.common["authorization"] = state.token
}