pinia报错:getActivePinia was called with no active Pinia. Did you forget to install pinia?

项目场景:

项目:vue3+pinia+vite+element-plus


问题描述

pinia.mjs:1692 Uncaught Error: [🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia?

错误:在没有激活Pinia的情况下调用getActivePinia。

报错代码:login.ts文件下

import { useUserStore } from '../../store/user'
import { useRoute } from 'vue-router'
const user = useUserStore()

报错位置:login.ts文件执行位置:
layout组件中。

原因分析:

报错:在没有激活Pinia的情况下调用getActivePinia

分析:

  1. login.ts中应用了pinia状态管理
  2. main.ts文件中尚未app.use(store),已经在layout文件中运行了login.ts文件

这里的问题像是异步导致的(不确定),main.ts中app.use(store).use(router).mount(“#app”),先挂store再挂router也不行,所以猜测是异步。


解决方案:

import store from '@/store/index.ts'
import { useUserStore } from '../../store/user'
import { useRoute } from 'vue-router'
const user = useUserStore(store)

以上是vue3中pinia的用法,在需要的页面再次引入pinia实例store即可。不同的是,其他页面引入,只需用const user = useUserStore(),激活pinia前引入需要传入pinia实例:const user = useUserStore(store)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值