Контекст плагина Nuxt.js3 становится неопределенным
Я разрабатываю приложение с использованием Nuxt.js3 и supabase.
Nuxt.js в plugins / supabase.server.js (я не понял, что лучше для этого - сервер или клиент). Я хочу использовать «supabase = createClient(~~)» из index.vue.
Однако я получаю значение undefined либо потому, что импорт не работает, либо потому, что я неправильно его называю.
Если я использую синтаксис усов и назову его как "{{$supabase}}", функция появится.
(Я плохо говорю по-английски, поэтому использую переведенные предложения.)
плагины / supabase.server.js
import { defineNuxtPlugin } from '#app'
import { createClient } from '@supabase/supabase-js/dist/main/index.js'
export default defineNuxtPlugin(nuxtApp => {
const config = useRuntimeConfig();
nuxtApp.provide('supabase', () => createClient(config.supabaseUrl, config.supabaseKey))
})
declare module '#app' {
interface NuxtApp {
$supabase (): string
}
}
страницы / index.vue
<script setup>
console.log($supabase) //$supabase is not defined
</script>
<template>
{{ $supabase }} // () => createClient(config.supabaseUrl, config.supabaseKey)
</template>
1 ответ
Пожалуйста, импортируйте
useRuntimeConfig
из
'#app'
. Итак, в вашем примере измените первую строку:
import { defineNuxtPlugin } from '#app'
В:
import { defineNuxtPlugin, useRuntimeConfig } from '#app'