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

问题描述 投票:0回答:1
Nuxt: 3.6.2
Pinia: 2.1.4
@pinia/nuxt: 0.4.11

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

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

当我从该参数中解构

$pinia
时(如 pinia 文档此处所示) 我收到以下类型错误:$pinia is of type unknown

但是当我在

useNuxtApp()
函数中调用
$pinia
来获取
defineNuxtPlugin()
时,我就可以访问它了。 $pinia is available via useNuxtApp()

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

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

nuxt.js vuejs3 nuxtjs3 pinia
1个回答
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),
        },
    };
});
© www.soinside.com 2019 - 2024. All rights reserved.