先看报错和代码:"getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
出错的原因:在pinia实例被激活前使用了pinia
报错时的代码:
main.ts:可以看出是先挂载的pinia,然后再挂载router,按理说不应该会先调用pinia的
router/index.ts 中的beforeEach:verifyHaveToken() 方法用于从pinia,或window.localStorage 中取出存储的token
来了,出错的原因:先用useLoginStore()获取了pinia中的其中一个模块
【解决方案】:不要在文件加载的时候就调用useLoginStore(),在文件加载的时候,pinia还没有被激活,这时候调用肯定会报错!!!!!!!!!!!!
将创建store的时候才调用useStore()方法创建,为了避免重复创建,可以将这个store挂载到app实例上:在路由跳转的时候,从 main.ts 中导出的app实例上判断有没有挂载 $loginStore,没有挂载的话就新创建一个然后挂载。