我应该如何正确调用NuxtServerInit?

时间:2019-10-26 17:01:49

标签: javascript vue.js vuex nuxt.js

VUEX存储库中有以下代码:

export const state = () => ({
  z: 'sdfjkhskldjfhjskjdhfksjdhf',
});

export const mutations = {

  init_data_for_firmenistorie2 (state, uploadDbFirmenistorieData){
    state.z = uploadDbFirmenistorieData;
  },


};

  async nuxtServerInit ({commit}) {
    console.log('111');
    commit('init_data_for_firmenistorie2', 123)
  }


}

我的问题是:
如何调用nuxtServerInit以便可以使用它重写状态z的值?
附言现在我的代码无法正常工作。

2 个答案:

答案 0 :(得分:1)

如果您的store/index.js有一个动作nuxtServerInit,则Nuxt将调用它。

所以您的代码最终看起来像

export const state = () => ({
  z: 'sdfjkhskldjfhjskjdhfksjdhf',
});

export const mutations = {
  init_data_for_firmenistorie2(state, uploadDbFirmenistorieData) {
    state.z = uploadDbFirmenistorieData;
  },
};

export const actions = {
  nuxtServerInit({ commit }) {
    console.log('111');
    commit('init_data_for_firmenistorie2', 123);
  },
};

答案 1 :(得分:0)

好,您创建一个动作对象,然后将nuxtServerInit放在其中:

export const actions = {
   nuxtServerInit(vuexContext, context){
      vuexContext.commit('init_data_for_firmenistorie2', 123);
   }
}

使用context,您可以另外访问paramsroutesredirect等。 文档:https://nuxtjs.org/api/context