Maison > Questions et réponses > le corps du texte
P粉1868974652023-08-27 08:07:09
Vous le remplacez dans nuxt.config.ts
中错误地安装了 @pinia/nuxt 模块。在 Nuxt 3 中,buildModules
属性已经不存在了,您需要使用 modules
(vous pouvez le constater par l'erreur TypeScript) :
// nuxt.config.ts
export default defineNuxtConfig({
// replace buildModules by modules
modules: ['@pinia/nuxt'],
});
Deuxième point, vous devez également appeler useAuthStore
à l'intérieur de la fonction combiner, sinon elle essaiera de charger le magasin avant que pinia ne se charge réellement. Il est appelé lorsque le fichier est importé, et non lorsque la fonction combineur est utilisée.
import { useAuthStore } from '~/store/auth-store'; export function doSomethingWithStore() { const authStore = useAuthStore(); return authStore.checkAuthUser; }
Veuillez vous référer à ce stackblitz
fonctionnelP粉3782646332023-08-27 00:19:28
En effet, déclarer const authStore = useAuthStore();
en dehors de toute fonction comme vous l'avez fait sera appelé à un stade précoce du démarrage de l'application, et avant que l'instance Pinia n'ait été correctement initialisée dans l'instance Vue.
Cela fonctionnera :
import { useAuthStore } from '~/store/auth-store'; export function doSomethingWithStore() { const authStore = useAuthStore(); return authStore.checkAuthUser; }
Lieux où il est sécuritaire de passer des appels Pinia (la liste peut ne pas être complète) :
<script setup>
<template>
sectiondefineNuxtMiddleware