У меня появляется сообщение об ошибке при вызове действия в vuex, поскольку метод отправки показывает, что он не определен и не имеет свойства then.
JS: [vuex] unknown action type: auth/login
JS: [Vue warn]: Error in v-on handler: "TypeError: Cannot read property 'then' of undefined"
Это не работает в этой строке:
this.$store.dispatch("auth/login", this.user).then(
() => {
this.$navigateTo(ProfileView);
},
error => {
this.loading = false;
this.message =
(error.response && error.response.data) ||
error.message ||
error.toString();
}
);
И это еще один код действий и модулей в vuex, я опускаю некоторый код, поскольку я думаю, что это не имеет отношения, но если вам нужен дополнительный код для проверки ошибки, я могу поделиться им.
auth .module. js
import AuthService from '../services/auth.service';
const user = JSON.parse(localStorage.getItem('user'));
const initialState = user
? {status: {loggedIn: true}, user}
: {status: {loggedIn: false}, user: null};
export const auth = {
namespaced: true,
state: initialState,
actions: {
login({commit}, usuario) {
return AuthService.login(usuario).then(
user => {
usuario.token = user.token;
delete usuario.password;
commit('loginSuccess', usuario);
return Promise.resolve(usuario);
},
error => {
commit('loginFailure');
return Promise.reject(error);
}
);
},
logout({commit}) {
AuthService.logout();
commit('logout');
},
},
mutations: {
loginSuccess(state, user) {
state.status.loggedIn = true;
state.user = user;
},
loginFailure(state) {
state.status.loggedIn = false;
state.user = null;
},
logout(state) {
state.status.loggedIn = false;
state.user = null;
}
}
};
main [точка] js
import Vue from 'nativescript-vue';
import store from './store'
new Vue({
store,
render: h => h('frame', [h(App)])
}).$start()
store / index. js
import Vue from 'nativescript-vue';
import Vuex from 'vuex';
import { auth } from './auth.module';
import { process} from "./process.module";
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
auth,
process
}
});