Pinia-は素子外で使用(vue 2)
開発環境
現在の開発環境はvue 2+組合せapiである.
routerはpiniaのstoreを呼び出し、storeがインストールされていないというエラーが発生しました.
構成部品以外のショップで使用する場合、共通のホームページの要件は次のとおりです. https://pinia.vuejs.org/core-concepts/outside-component-usage.html でも私のような場合、上記のように適用しても同じエラーが発生しました.
vue-router.esm.js:16 [vue-router] uncaught error during route navigation:
vue-router.esm.js:2314 Error: [🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia?
調べてみると、私と似たような問題に遭遇した人を見つけました. https://github.com/vuejs/pinia/discussions/723 https://github.com/vuejs/pinia/discussions/833 試してみる.
Vue.use(router)をVueに設定します.私はあなたにuse(PiniaPlugin)の後に呼び出させます...どんなに順番を変えても、routerで定義したbeforeEachが呼び出されてPiniaをインストール!撮られました🤔 Piniaがインストールされている次のルータをアクティブにする必要がある場合があります... 試行2(解決済み)
main.tsはuseStore(pinia)を呼び出し、beforeEachがuseStoreを使用している間にエラーは発生しません.
現在の開発環境はvue 2+組合せapiである.
routerはpiniaのstoreを呼び出し、storeがインストールされていないというエラーが発生しました.
構成部品以外のショップで使用する場合、共通のホームページの要件は次のとおりです.
// ❌ 이러면 임포트 안됨
const store = useStore()
router.beforeEach((to, from, next) => {
// we wanted to use the store here
if (store.isLoggedIn) next()
else next('/login')
})
// 이렇게 사용
router.beforeEach((to) => {
// ✅ This will work because the router starts its navigation after
// the router is installed and pinia will be installed too
const store = useStore()
if (to.meta.requiresAuth && !store.isLoggedIn) return '/login'
})
vue-router.esm.js:16 [vue-router] uncaught error during route navigation:
vue-router.esm.js:2314 Error: [🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia?
Reference
この問題について(Pinia-は素子外で使用(vue 2)), 我々は、より多くの情報をここで見つけました https://velog.io/@gykim/Pinia-컴포넌트-외부에서-사용-시-vue2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol