Nuxt 3:使用 DefineNuxtPlugin(nuxtApp) 时 nuxtApp 上不存在 $pinia 实例

Max*_*sen 5 nuxt.js vuejs3 nuxtjs3 pinia

Nuxt: 3.6.2
Pinia: 2.1.4
@pinia/nuxt: 0.4.11
Run Code Online (Sandbox Code Playgroud)

在为 Pinia 定义 Nuxt 3 插件时,我需要访问 nuxtApp 上存在的 $pinia 实例。

defineNuxtPlugin()函数传递参数nuxtApp. https://nuxt.com/docs/guide/directory-struct/plugins#creating-plugins

当我从该参数解构时(如此处$pinia的 pinia 文档所示),我收到以下类型错误:$pinia 的类型未知

但是当我调用useNuxtApp()$pinia函数时defineNuxtPlugin(),我可以访问它。 $pinia 可通过 useNuxtApp() 获得

知道为什么我的 pinia 示例对我不起作用吗?

到目前为止,我已遵循 Nuxt 3 / Pinia 安装指南,如下所述: https: //pinia.vuejs.org/ssr/nuxt.html#installation

小智 0

我使用下面的代码,总结一下就是转换为 Pinia 类型。

import { useMainStore } from '@/store';
import { Pinia } from 'pinia'; 

export default defineNuxtPlugin(({ $pinia }) => {
    const _pinia = $pinia as Pinia;

    if (!_pinia) return;

   return {
        provide: {
            store: useMainStore(_pinia),
        },
    };
});
Run Code Online (Sandbox Code Playgroud)