mirror of
https://github.com/nuxt/nuxt.git
synced 2025-02-24 01:19:58 +00:00
fix: fix teleport issue on non hydration lazy mount
This commit is contained in:
parent
41fcb19550
commit
ecb66ae399
@ -79,6 +79,7 @@ export default defineComponent({
|
|||||||
const hashId = computed(() => hash([props.name, props.props, props.context, props.source]))
|
const hashId = computed(() => hash([props.name, props.props, props.context, props.source]))
|
||||||
const instance = getCurrentInstance()!
|
const instance = getCurrentInstance()!
|
||||||
const event = useRequestEvent()
|
const event = useRequestEvent()
|
||||||
|
let hasContent = false
|
||||||
|
|
||||||
// TODO: remove use of `$fetch.raw` when nitro 503 issues on windows dev server are resolved
|
// TODO: remove use of `$fetch.raw` when nitro 503 issues on windows dev server are resolved
|
||||||
const eventFetch = import.meta.server ? event.fetch : import.meta.dev ? $fetch.raw : globalThis.fetch
|
const eventFetch = import.meta.server ? event.fetch : import.meta.dev ? $fetch.raw : globalThis.fetch
|
||||||
@ -239,6 +240,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
if ((!html.value || error.value) && slots.fallback) {
|
if ((!html.value || error.value) && slots.fallback) {
|
||||||
|
hasContent = false
|
||||||
return [slots.fallback({ error: error.value })]
|
return [slots.fallback({ error: error.value })]
|
||||||
}
|
}
|
||||||
const nodes = [createVNode(Fragment, {
|
const nodes = [createVNode(Fragment, {
|
||||||
@ -260,7 +262,7 @@ export default defineComponent({
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (import.meta.client && canLoadClientComponent.value) {
|
if (import.meta.client && canLoadClientComponent.value && (hasContent || nuxtApp.isHydrating)) {
|
||||||
for (const [id, props] of Object.entries(nonReactivePayload.props ?? {})) {
|
for (const [id, props] of Object.entries(nonReactivePayload.props ?? {})) {
|
||||||
// @ts-expect-error _ is the component's default export in build chunks
|
// @ts-expect-error _ is the component's default export in build chunks
|
||||||
const component = components!.get(id.split('-')[0])!._ ?? components!.get(id.split('-')[0])!
|
const component = components!.get(id.split('-')[0])!._ ?? components!.get(id.split('-')[0])!
|
||||||
@ -272,6 +274,7 @@ export default defineComponent({
|
|||||||
nodes.push(vnode)
|
nodes.push(vnode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
hasContent = true
|
||||||
}
|
}
|
||||||
return nodes
|
return nodes
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user