Actualmente estoy trabajando en un proyecto con Nuxt(2), Vuex y Composition-API. Intentando obtener algunos datos de "contenido de la pregunta" de una API como esta:
const questions = computed(() => store.state['questions'].questions) const { fetch } = useFetch(async () => { await store.dispatch('questions/fetchQuestions') }) fetch() Probé dos métodos para obtener los datos en Actions .
Con await :
async getQuestionDetail({ commit }, slug) { const resp = await this.$axios.$get(`${'api/question/' + slug}`) commit('setDetail', resp.data) } con promise :
async getQuestionDetail({ commit }, slug) { this.$axios.$get(`${'api/question/' + slug}`).then((response) => { commit('setDetail', response.data) }) } Cuando traté de obtener datos con await e ir a la página que realiza la solicitud, funciona sin errores.
Pero cuando actualizo la página, me sale este error:
Error: [vuex] do not mutate vuex store state outside mutation handlers. Cuando obtengo los datos con una página de promise funciona sin ningún problema.
Me gustaría saber qué está causando este error incluso cuando no vinculo ningún dato. ¿Cuál es la diferencia de comportamiento en estos dos métodos?