From 750460693e9edace3c5e2a89b40a6fea6bf69342 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 11:52:08 +0100 Subject: [PATCH] fix(nuxt): check if default slot is provided before calling it (#4842) --- packages/nuxt/src/app/components/nuxt-link.ts | 2 +- packages/nuxt/src/app/components/utils.ts | 2 +- packages/nuxt/src/head/runtime/components.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 140728928..471dfe67f 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -175,7 +175,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { // converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`) : firstNonUndefined(props.rel, options.externalRelAttribute, href ? DEFAULT_EXTERNAL_REL_ATTRIBUTE : '') || null - return h('a', { href, rel, target }, slots.default()) + return h('a', { href, rel, target }, slots.default?.()) } } }) as unknown as DefineComponent diff --git a/packages/nuxt/src/app/components/utils.ts b/packages/nuxt/src/app/components/utils.ts index 188ec6eb7..42812f840 100644 --- a/packages/nuxt/src/app/components/utils.ts +++ b/packages/nuxt/src/app/components/utils.ts @@ -3,7 +3,7 @@ import type { Component } from 'vue' const Fragment = { setup (_props, { slots }) { - return () => slots.default() + return () => slots.default?.() } } diff --git a/packages/nuxt/src/head/runtime/components.ts b/packages/nuxt/src/head/runtime/components.ts index da980b7e9..08405dad4 100644 --- a/packages/nuxt/src/head/runtime/components.ts +++ b/packages/nuxt/src/head/runtime/components.ts @@ -135,7 +135,7 @@ export const Base = defineComponent({ export const Title = defineComponent({ name: 'Title', setup: setupForUseMeta((_, { slots }) => { - const title = slots.default()?.[0]?.children || null + const title = slots.default?.()?.[0]?.children || null if (process.dev && title && typeof title !== 'string') { console.error(' can only take a string in its default slot.') }