From 3af421cef09d4124012d57a3677cf474ab461c5d Mon Sep 17 00:00:00 2001 From: liulinboyi <814921718@qq.com> Date: Thu, 28 Apr 2022 20:12:03 +0800 Subject: [PATCH] fix(server-renderer): Scoped data attributes aren't passed down to functional components #5817 --- packages/server-renderer/src/helpers/ssrRenderComponent.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/server-renderer/src/helpers/ssrRenderComponent.ts b/packages/server-renderer/src/helpers/ssrRenderComponent.ts index 4709f23a674..35ae409f0b2 100644 --- a/packages/server-renderer/src/helpers/ssrRenderComponent.ts +++ b/packages/server-renderer/src/helpers/ssrRenderComponent.ts @@ -1,3 +1,4 @@ +import { isFunction } from '@vue/shared' import { Component, ComponentInternalInstance, createVNode, Slots } from 'vue' import { Props, renderComponentVNode, SSRBuffer } from '../render' import { SSRSlots } from './ssrRenderSlot' @@ -10,7 +11,9 @@ export function ssrRenderComponent( slotScopeId?: string ): SSRBuffer | Promise { return renderComponentVNode( - createVNode(comp, props, children), + isFunction(comp) && parentComponent + ? (parentComponent.subTree = createVNode(comp, props, children)) + : createVNode(comp, props, children), parentComponent, slotScopeId )