vue.js - 从 Vuex 操作返回数据

标签 vue.js vuex

我可以从 Vuex 操作返回数据还是需要更新存储?

我定义了一个操作,但它不返回任何数据:

getData() {
    return { "a" : 1, "b" : 2 }
}

最佳答案

您实际上可以从操作返回数据。来自 the documentation :

Actions are often asynchronous, so how do we know when an action is done? And more importantly, how can we compose multiple actions together to handle more complex async flows?

您应该在 resolve() 方法中返回一个 promise 和数据:

actions: {
  actionA () {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve({ name: 'John Doe' })
      }, 1000)
    })
  }
}

并以这种方式使用它:

store.dispatch('actionA').then(payload => {
  console.log(payload) /* => { name: 'John Doe' } */
})

关于vue.js - 从 Vuex 操作返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071406/

相关文章:

vue.js - 将集合复制出 vuex 状态以防止突变是标准做法吗?

javascript - 使用参数测试 Vuex getters 返回 undefined 不是一个函数

javascript - 使用 vue axios 加载 Laravel View

javascript - 如何使用点击事件导航到另一个页面

javascript - Vue 2.6 在 Safari IOS 上无法正常工作

vue.js - Vuex 条件(延迟加载?)存储

javascript - 从 promise 解析调用时 Vuex 存储未更新

vue.js - v-for 循环中的动态数组名

javascript - 配置 webpack encore 进行异步和等待(Symfony 4 和 VueJs)

javascript - 等待后的 Vuex 提交不会更新状态