自从nuxt 3.4.0更新以后,无法在composeables中使用pinia store。
//例子composeable
import { useAuthStore } from '~/store/auth-store';
const authStore = useAuthStore();
export function doSomethingWithStore() {
return authStore.checkAuthUser;
}
你将会收到以下错误
getActivePinia was called with no active Pinia. Did you forget to install pinia? const pinia = createPinia() app.use(pinia) This will fail in production.
查看stackblitz例子 https://stackblitz.com/edit/broken-pinia-store-in-composeables?file=composables%2FthisBreaks.js,nuxt.config.ts
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这是因为像你所做的那样,在任何函数之外声明
const authStore = useAuthStore();会在应用程序启动的某个早期阶段调用,并且在Vue实例内正确初始化Pinia实例之前。这样做会起作用:
import { useAuthStore } from '~/store/auth-store'; export function doSomethingWithStore() { const authStore = useAuthStore(); return authStore.checkAuthUser; }可以安全地进行Pinia调用的地方(可能不是完整的列表):
<script setup>内部<template>部分内联defineNuxtMiddleware内部