Estoy tratando de configurar datos mutados desde una API dentro del estado, el problema es que en lugar de los datos, establece una matriz vacía dentro de mi estado. Si hago console.log state.user.typeSortedModuleItems, muestra los datos correctos que deben configurarse. Pero de alguna manera establece state.user.typeSortedModuleItems en una matriz vacía cuando compruebo Vue.js Devtools.
Esta es la acción de la tienda, desde aquí obtengo los datos de la API, los datos de respuesta van a setTypeSortedModuleItems.
async getTypeSortedModuleItems({commit}, data) { let token = localStorage.getItem('authToken') let urlParams = '?' + qs.stringify(data) try { await Api().get('/url/to/api' + urlParams, { headers: { 'Accept': 'application/json', 'Authorization': token } }) .then(response => { commit('setTypeSortedModuleItems', response.data) }) .catch( (error) => { if (error.response) { console.log(error.response.data) console.log(error.response.headers) } else if (error.request) { console.log(error.request) console.log(error.message) } else { console.log('Error', error.message) } }) } catch (err) { console.log(err.messages) }}
Aquí muto los datos y los almaceno en el estado, cuando console.log 'typeSortedModuleItems' y 'state.user.typeSortedModuleItems' muestra los datos correctos, pero el estado no se actualiza.
setTypeSortedModuleItems(state, list) { let typeSortedModuleItems = [] if (list !== null) { for (let i = 0; i < list.length; i++) { let moduleType = list[i].ModuleTypeDescription if (typeSortedModuleItems[moduleType]) { typeSortedModuleItems[moduleType].push(list[i]) } else { typeSortedModuleItems[moduleType] = [list[i]] } } } else { console.log(list) } console.log(typeSortedModuleItems) state.user.typeSortedModuleItems = typeSortedModuleItems console.log(state.user.typeSortedModuleItems)}
aquí hay una captura de pantalla de la consola end vue devtools. captura de pantalla de la consola end vue devtools
No tengo idea de qué está mal aquí, o si lo que estoy tratando de hacer es posible. Espero alguna ayuda/consejo. ¡Gracias!