报错会报两个一个是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的地方都改到具体使用的方法里去
再试试,就一切正常了

本文解决了在Vue项目中使用Pinia时遇到的初始化错误问题,详细介绍了如何正确地在Store间引用彼此以及如何避免在Pinia未完全初始化时提前使用Store。

362

被折叠的 条评论
为什么被折叠?



