在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:如果你不是要在文件里全局使用的话,在调用的方法里再去定义就不用这么麻烦了,这方法里的全局变量跟你原本的全局变量是不互通的