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对象,这样也不用每一次去创建了)
在这里插入图片描述
如有疑问或不足之处,欢迎交流指正

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐