为什么不以我的自定义选项保存状态

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

我在/store/options.js中有此代码:

export default {
  state: {
    lang: 'en',
    customOptions: {},
  },
  mutations: {
    setOptions(state, { options, id, lang }) {
      state.customOptions = options
    },
  },
  actions: {
    async fetchOptions(
      {
        state: { lang },
        commit,
      },
      { id }
    ) {
      const customOptions = await this.$axios.$get(
        `https://api.my-project.com/wp-admin/admin-ajax.php?action=get_custom_options`
      )

      commit('setOptions', { customOptions, id, lang })
    },
  },
}

我的目的是将对象(返回有效的json)保存到store.context.customOptions中

但是这是store.state记录的内容:

{
  options: {
    lang: 'en',
    customOptions: {} // <------- empty
  },
  // ....
}

我在控制台中看不到任何错误。

javascript vue.js axios store nuxt.js
1个回答
0
投票

好吧,我可以告诉你我将如何做:

我将在我的商店文件夹中创建index.js并将其写入其中:

import axios from "axios"
export const state = () => ({
   lang: 'en',
   customOptions: {},
})

export const mutations = {
    setOptions: function(state, { options, id, lang }) {
    state.customOptions = options
    },
},

export const actions = {

  nuxtServerInit(vuexContext, context){
     return axios.get("https://api.my-project.com/wp-admin/admin-ajax.php?action=get_custom_options")
     .then(data => {
        console.log(data)
        vuexContext.commit('setOptions', data)
     })
  },
}

这是它的模块方式

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