Vue js 2 - 在组件中调度的操作的回调函数

Posted

技术标签:

【中文标题】Vue js 2 - 在组件中调度的操作的回调函数【英文标题】:Vue js 2 - Callback function for an action dispatched in a component 【发布时间】:2018-09-05 10:16:56 【问题描述】:

在不设置状态的情况下,有什么方法可以知道组件的调度操作是否已完成? 现在我有一个动作 - createAddress 在我的组件中,我有一个用户输入地址的模式。 当用户输入详细信息并单击“保存”按钮时,我会像这样发送操作 -

saveAddress () 
  this.$store.dispatch('createAddress', this.address)

该操作进行 axios 调用并返回状态 200 OK 或错误。 如果状态 200 我想关闭模式。如果出错,我不想关闭它。 实现这一目标的最佳方法是什么?我真的必须创建一个状态,更新那个状态值,在组件中观察那个值,然后关闭模态框吗?

从代码的角度来看,以下是我想要的

saveAddress () 
  this.$store.dispatch('createAddress', this.address)
  // Close modal if success

【问题讨论】:

我在这里找到了答案***.com/questions/40165766/… 该操作应该返回一个 Promise 【参考方案1】:
saveAddress () 
  this.$store.dispatch('createAddress', this.address, this)

在createAddress中,你可以关闭模​​态

【讨论】:

不要这样做!该操作应返回一个 Promise

以上是关于Vue js 2 - 在组件中调度的操作的回调函数的主要内容,如果未能解决你的问题,请参考以下文章

Vue配置全局变量,配置监听回调

深度剖析 Vue3 的调度系统

依次执行自定义函数——Vue.js中的回调逻辑

如何从 javascript 文件(而不是 vue 组件)调度操作?

vue3教程

vue利用回调函数保证子组件调父组件方法按顺序执行