1、背景
最近在搭建vue3+pinia项目时,无意中出现了getActivePinia was called with no active Pinia. Did you forget to install pinia?
这个bug
上面日志也标记了报错位置:
2、原因
报错原因:在 main.ts文件中,先引入@/router/router.interceptor文件然后再将pinia挂载到app,所以当我们使用GlobalStore时pinia还没有挂载到app上,这时候就报错了
3、解决方案
那我们如何解决呢,就是不要用全局,当需要时再使用
,当时之所以在路由拦截里全局使用是为了避免频繁创建store,出现这个错误后我把GlobalStore使用位置放在里路由拦截函数内部,这样就避免上面问题出现(或者使用全局变量来存GlobalStore对象,这样也不用每一次去创建了)
如有疑问或不足之处,欢迎交流指正