【发布时间】:2021-10-15 19:10:15
【问题描述】:
习惯了 vuejs,我在 nuxt 上创建了一个 store,但无法成功调用来自模块的函数。根据我的阅读,状态必须是一个函数,我做的东西,但仍然无法调用我的函数,这是我的商店:
存储/index.js
import Vue from "vue";
import Vuex from "vuex";
import user from "./module/user";
Vue.use(Vuex);
export const store = new Vuex.Store({
modules: {
user,
},
});
存储/模块/user.js
import Vue from "vue"
export default {
state = () => ({
user: null
}),
getters: {
getUser: (state) => state.user
},
mutations: {
INIT_USER(state, data) {
Vue.set(state, "user", data);
}
},
actions: {
async initUser({ commit }) {
try {
const user = "John"
await commit("INIT_USER", user);
} catch (err) {
console.error(err);
}
}
}
}
pages/profile.vue
<script>
import { mapActions } from "vuex";
export default {
methods: {
...mapActions(["initUser"]),
async getUser() {
this.initUser();
}
}
}
</script>
我在 vuejs 上有完全相同的代码(除了作为 vuejs 对象的状态)并且它可以工作,所以我不明白与 nuxt 的区别。
感谢您的帮助
【问题讨论】:
-
嗨,这里有什么问题?