У меня есть этот код в /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
},
// ....
}
Я не вижу никаких ошибок в консоли.
0
Toni Michel Caubet
1 ответ
Ну, я могу показать вам, как я бы это сделал:
я хотел бы создать 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)
})
},
}
Это модульный способ сделать это
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.