模块模式下的nuxtServerInit不运行。

问题描述 投票:0回答:1

我用的是 nuxt.js 在通用模式下,我试图运行 nuxtServerInit() 在我的一个商店动作中,但它没有运行。

在文档中说...

如果你使用的是Vuex商店的模块模式,那么只有主模块(在storeindex.js中)会收到这个动作。你需要从那里连锁你的模块动作。

然而我不太明白你需要做什么才能使这个工作。另外,如果你需要使用主模块,那么为什么你需要使用模块模式呢?那么你应该只需要使用经典模式。

商店帖子.js

export const state = () => ({
    loadedPosts:[]
});

export const getters = {
    get(state){
        return state
    }
};

export const mutations = {
    setPosts(state, payload){
        state.loadedPosts = payload;
    }
};

export const actions = {
    async nuxtServerInit ({commit}){
        const {data} = await axios.get('somedata')
        console.log('I cannot see this comment');
        commit('setPosts', data.results)
    }
};
vue.js nuxt.js
1个回答
0
投票

就像文档中说的,你真的需要把这个函数放在 index.js 内的文件 store 文件夹,否则将无法工作。

这里是一个NuxtJs通用应用程序的例子,它的功能是 ./store/index.js 只用该文件,你可以很容易地用文件名前缀调用其他存储方法,如本例所示 auth/setAuth

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.