Я пытаюсь разделить файлы моего хранилища Nuxt Vuex на отдельные файлы . И НЕ объединяйте все Vuex getters
, mutations
и actions
в один огромный файл. Кстати, этот демонстрационный проект на Github .
Я прочитал эту официальную документацию по Nuxt Vuex Store ; но не могу заставить его работать. Немного расплывчато, куда положить вещи.
У меня есть следующие файлы:
Ниже мой: store / index.js
import Vue from "vue";
import Vuex from "vuex";
import Auth from "./modules/auth";
Vue.use(Vuex);
export const store = () => {
return new Vuex.Store({
state: {
},
modules: {
Auth
}
})
}
Это в моем: store / auth.js
const state = () => {
username: null
};
const getters = {
username: state => {
return state.username;
},
isAuthenticated: state => {
return state.username != null;
}
};
const mutations = {
login: (vuexContext, username) => {
vuexContext.username = username;
this.$router.push("/dashboard");
},
logout: vuexContext => {
vuexContext.username = null;
this.$router.push("/");
}
};
const actions = {
};
export default {
state,
getters,
mutations,
actions,
};
И наконец по моему: pages / index.vue
Вот где я звоню, логин мутация:
<script>
export default {
layout: "non-logged-in",
data() {
return {
username: null
}
},
methods: {
onSubmit() {
this.$store.commit("login", this.username);
}
}
}
</script>
Я получаю ошибку:
[vuex] unknown mutation type: login
Что я здесь не так делаю? Я думал, что я импортирую все вещи правильно в store/index.js