【问题标题】:How to subscribe to a specific action in Pinia如何订阅 Pinia 中的特定操作
【发布时间】:2022-11-10 23:40:15
【问题描述】:

有谁知道是否可以订阅 Pinia 中的特定操作? 我知道有一种方法可以订阅这样的所有操作:

const subscribe = someStore.$onAction(callback, false)

但这意味着我必须将操作名称与回调中我想要的名称进行比较,如下所示:

websocketStore.$onAction(
  ({name}) => {
    if (name === 'specificAction') {
      console.log('do something')
    }
  }
)

所以我想知道是否有更好的方法? (我将 Pinia 与 Nuxt3 一起使用)

【问题讨论】:

  • 你想通了吗?我也想知道怎么做:)

标签: nuxt.js vuejs3 store nuxtjs3 pinia


【解决方案1】:

订阅操作

可以通过以下方式观察动作及其结果 store.$onAction()。传递给它的回调在操作本身之前执行。在处理承诺之后,并允许您在操作解决后执行功能。以类似的方式,onError 允许您在操作抛出或拒绝时执行函数。

export default {
  setup() {
    const someStore = useSomeStore()

    // this subscription will be kept even after the component is unmounted
    someStore.$onAction(callback, true)

    // ...
  },
}

Pinia official documentation

【讨论】:

    猜你喜欢
    • 2019-08-18
    • 2023-04-08
    • 2020-04-27
    • 1970-01-01
    • 2017-04-07
    • 2022-07-10
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多