¿Puedo devolver datos de una acción de Vuex o necesito actualizar la tienda?
Tengo una acción definida pero no devuelve datos:
getData() {
return { "a": 1, "b": 2 }
}
Solución del problema
De hecho, puede devolver datos de una acción. De la documentación:
Las acciones suelen ser asincrónicas, entonces, ¿cómo sabemos cuándo se realiza una acción? Y lo que es más importante, ¿cómo podemos componer varias acciones juntas para manejar flujos asíncronos más complejos?
Debe devolver una promesa y los datos en el resolve()
método:
actions: {
actionA () {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ name: 'John Doe' })
}, 1000)
})
}
}
Y úsalo de esta manera:
store.dispatch('actionA').then(payload => {
console.log(payload) /* => { name: 'John Doe' } */
})
No hay comentarios.:
Publicar un comentario