pinia $subscribe((mutation: any, state: any) => {}) 打包后无法获取mutaion.events 如何才能获取
时间: 2024-02-01 10:16:55 浏览: 81
如果打包后无法获取 `mutation.events`,可能是因为你没有在 `pinia` 中开启 `devtools` 或者在开启 `devtools` 后没有刷新页面,所以 `mutation.events` 没有被创建。
你可以通过在 `pinia` 中开启 `devtools` 或者使用 `pinia.use()` 显式地启用 `events` 插件来解决这个问题。
方法一:在 `pinia` 中开启 `devtools`
```javascript
import { createPinia } from 'pinia'
const pinia = createPinia()
// 启用 devtools
pinia.use(({ app }) => {
app.useDevtools()
})
// 订阅 mutation 事件
pinia.subscribe((mutation, state) => {
console.log(mutation.type, mutation.payload)
})
```
方法二:显式地启用 `events` 插件
```javascript
import { createPinia, createPiniaPlugin } from 'pinia'
import { EventsPlugin } from '@pinia/events'
const pinia = createPinia()
// 显式地启用 events 插件
pinia.use(createPiniaPlugin(EventsPlugin))
// 订阅 mutation 事件
pinia.subscribe((mutation, state) => {
console.log(mutation.type, mutation.payload)
})
```
阅读全文