在ts、js文件中引用pinia全局变量报错

在ts/js文件中需要用到全局变量pinia的情况

发现控制台有这样一个报错
在这里插入图片描述
Uncaught Error: [🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?


解决方法

可以在store文件夹下创建一个pinia.ts文件 ps:文件名无关紧要
pinia.ts里的代码

import { createPinia } from 'pinia'
const pinia = createPinia()
export default pinia

还需要在入口文件main.ts/js挂载一下
我的main.ts代码如下

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import pinia from './store/pinia'

const app = createApp(App)
app.use(pinia)
app.use(createPinia())
app.mount('#app')

关键代码其实就是这两行

import pinia from './store/pinia'
app.use(pinia)

添加完毕后到你需要使用全局变量的ts/js文件里引入
然后像vue文件一样使用就好了 useMainStore 、materialPicList 是我自定义的

import pinia from '@/store/pinia.js'
import { storeToRefs } from 'pinia'
import { useMainStore } from "@/store"
const mainStore = useMainStore(pinia)
const { materialPicList } = storeToRefs(mainStore)

总结:

大概就是这样,本人纯菜,如果有不对的地方可以帮忙指出,十分感谢!
ps:如果你不是要在文件里全局使用的话,在调用的方法里再去定义就不用这么麻烦了,这方法里的全局变量跟你原本的全局变量是不互通的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值