如何订阅 Pinia 中的特定操作

Mar*_*Miś 19 store nuxt.js vuejs3 nuxtjs3 pinia

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

const subscribe = someStore.$onAction(callback, false)
Run Code Online (Sandbox Code Playgroud)

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

websocketStore.$onAction(
  ({name}) => {
    if (name === 'specificAction') {
      console.log('do something')
    }
  }
)
Run Code Online (Sandbox Code Playgroud)

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

Vas*_*ski -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)

    // ...
  },
}
Run Code Online (Sandbox Code Playgroud)

Pinia 官方文档