vue3項(xiàng)目引入pinia報(bào)錯(cuò)的簡單解決
vue3項(xiàng)目引入pinia報(bào)錯(cuò)
1.控制臺(tái)錯(cuò)誤提示:getActivePinia was called with no active Pinia. Did you forget to install pinia?

2.報(bào)錯(cuò)原因
pinia集成順序錯(cuò)誤 掛載已經(jīng)結(jié)束,但pinia集成失敗 運(yùn)行報(bào)錯(cuò)

3.解決方案:調(diào)整順序?qū)?pinia的集成放在#app的掛載之前

app.use(createPinia()).use(router).mount('#app')vue3+Pinia使用經(jīng)歷(常見報(bào)錯(cuò)、警告)
近期在路由傳參中使用params時(shí)發(fā)現(xiàn)報(bào)了這么一個(gè)錯(cuò)誤:
const Edit = (scope) => {
const val = JSON.stringify(scope)
router.push({ name: 'upload', params: { val } })
}
點(diǎn)進(jìn)鏈接后提示讓我使用pinia或者vuex狀態(tài)管理,于是照著pinia文檔創(chuàng)建了pinia.js頁面用來存放數(shù)據(jù):
//pinia.js
import {defineStore} from 'pinia'
import {reactive} from 'vue'
export const usePiniasStore = defineStore('alerts', () => {
const arr = reactive({
msg: ''
})
function getMsg(e) {
arr.msg = e
}
return { arr, getMsg }
})將組件中的數(shù)據(jù)傳入pinia.js文件:
//dishes.vue
import { usePiniasStore } from '@/store/pinia'
export default {
setup() {
const dishesStore = usePiniasStore()
const Edit = (scope) => {
const val = JSON.stringify(scope)
dishesStore.getMsg(val)
router.push({ name: 'upload' })
}
}
}緊接著報(bào)了這么個(gè)錯(cuò)誤:

百度了一下告訴我要先掛載再使用,于是我將createApp、createPinia、App引入進(jìn)行掛載:
//dishes.vue
import { usePiniasStore } from '@/store/pinia'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from '@/App.vue'
export default {
setup() {
const pinia = createPinia()
const app = createApp(App)
app.use(pinia)
const dishesStore = usePiniasStore()
const Edit = (scope) => {
const val = JSON.stringify(scope)
dishesStore.getMsg(val)
router.push({ name: 'upload' })
}
}
}這個(gè)時(shí)候再在另一個(gè)組件中便能取到pinia.js中的數(shù)據(jù)了:
//upload.vue
import { usePiniasStore } from '@/store/pinia'
export default {
setup() {
const storex = usePiniasStore()
const etid_data = storex.arr.msg
console.log(etid_data);
}
}至此,問題解決!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vue3之狀態(tài)管理器(Pinia)詳解及使用方式
- Vue3中的pinia使用方法總結(jié)(建議收藏版)
- Vue3狀態(tài)管理之Pinia的入門使用教程
- vue3項(xiàng)目使用pinia狀態(tài)管理器的使用
- vue3 pinia踩坑及解決方案詳解
- Vue3中pinia的使用與持久化處理詳解
- Vue3組件不發(fā)生變化如何監(jiān)聽pinia中數(shù)據(jù)變化
- vue3中vuex與pinia的踩坑筆記記錄
- vue3搭配pinia的踩坑實(shí)戰(zhàn)記錄
- vue3?pinia實(shí)現(xiàn)持久化詳解
- vue3中使用pinia(大菠蘿)狀態(tài)管理倉庫的項(xiàng)目實(shí)踐
- Vue3 狀態(tài)管理 Pinia 入門指南
相關(guān)文章
vue后臺(tái)管理如何配置動(dòng)態(tài)路由菜單
這篇文章主要介紹了vue后臺(tái)管理如何配置動(dòng)態(tài)路由菜單,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue3 Element-plus el-menu無限級(jí)菜單組件封裝過程
對于element中提供給我們的el-menu組件最多可以實(shí)現(xiàn)三層嵌套,如果多一層數(shù)據(jù)只能自己通過變量去加一層,如果加了兩層、三層這種往往是行不通的,所以只能進(jìn)行封裝,這篇文章主要介紹了Vue3 Element-plus el-menu無限級(jí)菜單組件封裝,需要的朋友可以參考下2023-04-04
Vue elementUI 自定義表單模板組件功能實(shí)現(xiàn)
在項(xiàng)目開發(fā)中,我們會(huì)遇到這種需求,在管理后臺(tái)添加自定義表單,在指定的頁面使用定義好的表單,這篇文章主要介紹了Vue elementUI 自定義表單模板組件,需要的朋友可以參考下2022-12-12
vue項(xiàng)目中使用fetch的實(shí)現(xiàn)方法
這篇文章主要介紹了vue項(xiàng)目中使用fetch的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Vue3中Composition API的原理與實(shí)戰(zhàn)指南
Composition API為開發(fā)者提供了一種全新的組織組件邏輯的方式,本文將深入探討Vue3中Composition API的實(shí)際應(yīng)用,幫助開發(fā)者掌握這一強(qiáng)大工具2025-07-07
npm install報(bào)錯(cuò)缺少python問題及解決
這篇文章主要介紹了npm install報(bào)錯(cuò)缺少python問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Vue 自定義指令實(shí)現(xiàn)一鍵 Copy功能
指令 (Directives) 是帶有 v- 前綴的特殊特性。這篇文章主要介紹了Vue 自定義指令實(shí)現(xiàn)一鍵 Copy的功能,需要的朋友可以參考下2019-09-09

