项目场景:
项目: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
分析:
- login.ts中应用了pinia状态管理
- main.ts文件中尚未app.use(store),已经在layout文件中运行了login.ts文件
这里的问题像是异步导致的(不确定),main.ts中app.use(store).use(router).mount(“#app”),先挂store再挂router也不行,所以猜测是异步。文章来源:https://www.toymoban.com/news/detail-450014.html
解决方案:
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)
。文章来源地址https://www.toymoban.com/news/detail-450014.html
到了这里,关于pinia报错:getActivePinia was called with no active Pinia. Did you forget to install pinia?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!