Rumah > Soal Jawab > teks badan
P粉1868974652023-08-27 08:07:09
Anda menggantikannya dalam nuxt.config.ts
中错误地安装了 @pinia/nuxt 模块。在 Nuxt 3 中,buildModules
属性已经不存在了,您需要使用 modules
(anda boleh tahu dengan ralat TypeScript):
// nuxt.config.ts
export default defineNuxtConfig({
// replace buildModules by modules
modules: ['@pinia/nuxt'],
});
Titik kedua, anda juga perlu memanggil useAuthStore
di dalam fungsi combiner, jika tidak ia akan cuba memuatkan kedai sebelum pinia benar-benar dimuatkan. Ia dipanggil apabila fail diimport, bukan apabila fungsi penggabung digunakan.
import { useAuthStore } from '~/store/auth-store'; export function doSomethingWithStore() { const authStore = useAuthStore(); return authStore.checkAuthUser; }
Sila rujuk ini berfungsi stackblitz
P粉3782646332023-08-27 00:19:28
Ini kerana pengisytiharan const authStore = useAuthStore();
di luar sebarang fungsi seperti yang anda lakukan akan dipanggil pada beberapa peringkat awal dalam permulaan aplikasi, dan sebelum tika Pinia telah dimulakan dengan betul dalam tika Vue.
Ini akan berfungsi:
import { useAuthStore } from '~/store/auth-store'; export function doSomethingWithStore() { const authStore = useAuthStore(); return authStore.checkAuthUser; }
Tempat yang selamat untuk membuat panggilan Pinia (mungkin bukan senarai lengkap):
<script setup>
<template>
dalam bahagian defineNuxtMiddleware