我在/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
},
// ....
}
我在控制台中看不到任何错误。
好吧,我可以告诉你我将如何做:
我将在我的商店文件夹中创建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)
})
},
}
这是它的模块方式