抖音小程序制作平台官网(小程序 getActivePinia was called with no active Pinia. Did you forget to install pinia?)
导读:小程序项目使用pinia做状态管理报错:...
小程序项目使用pinia做状态管理报错:
Error: [🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia?
const pinia = createPinia()
app.use(pinia)
app运行打包时有个同样的错误
错误原因是:在外部js/ts中使用时 pinia还没有完成初始化
例如 // login.ts文件中 import { storeToRefs } from "pinia"; import useUserStore from "@/store/user"; const { user, userState } = storeToRefs(useUserStore());在外部js/ts中导入useUserStore 后立马声明变量const { user, userState } = storeToRefs(useUserStore()); 就会出现上面的报错清空
解决方案:
将 const { user, userState } = storeToRefs(useUserStore()); 写在函数里面by the way: 网上查找问题的解决方案时 ,有的原因是在setup 之外调用了 usestore ,大家自查这种情况吧
还有一个方案时在外部js/ts中使用的时候 ,先导入pinia ,如下方式
import pinia from "@/store/pinia"; import { userState } from "@/store/user"; const store = useUser(pinia)// 这里一定要把 pinia传入进去但是我在使用的过程中会出现一个时间差 ,刚登录赋值 ,随后使用过程的时候还是空值的情况
(大胆的猜测可能因为在不用页面导入了login.ts ,然后拿到的是赋值前后不同时期的值😂)
不知道大家能不能理解我想表达的意思 ,会不会也出现这种情况 。也有可能这个方案也是可行的额 ,但我的代码逻辑不适合这个方案😂😂😂创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!