Vue3在router中使用pinia报错的问题解决办法

报错会报两个一个是xxxStore WEBPACK_IMPORTED_MODULE_1__.default) is not a function还有一个是getActivePinia was called with no active Pinia

因为接到了要在路由守卫中增加判断的需求,需要用到store中的数据,于是在router里面import了store,beforeEach里use了,然后启动就报异常,去官网翻文档。(https://pinia.web3doc.top/core-concepts/outside-component-usage.html)
在这里插入图片描述
大概的意思是要在初始化了pinia之后调用才行,得把useStore的逻辑写到方法里,照着操作一遍发现还是xxxStore WEBPACK_IMPORTED_MODULE_1__.default) is not a function。
于是乎检查所有Store,发现有些Store中代码是这样的
在这里插入图片描述
知晓一二了,一个Store引入另外一个Store,const userStore = useUserStore();的位置应该放在具体方法里面不能放到上面,否则也会像Router那样在pinia初始化之前就被调用从而报xxx is not a function的错误
解决方案:检查所有Store包括js,把这种在方法外部useStore的地方都改到具体使用的方法里去
再试试,就一切正常了

猜你喜欢

转载自blog.csdn.net/hangsky1990/article/details/128805579