From a8c72fc5e7cbbb65d14f9d95582467e06bc6d6c6 Mon Sep 17 00:00:00 2001
From: Carl Chen <71313168+cc-hearts@users.noreply.github.com>
Date: Fri, 19 Apr 2024 19:18:30 +0800
Subject: [PATCH] fix[Menu]: fix `menu-item-group` not rendering in SSR (#7349)
* docs: updating the `dropdownRender` description and jumps in the FAQ for Select
* fix: `menu-item-group` rendered in ssr
---
components/menu/src/Menu.tsx | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/components/menu/src/Menu.tsx b/components/menu/src/Menu.tsx
index b4eee426e..9c5956a0c 100644
--- a/components/menu/src/Menu.tsx
+++ b/components/menu/src/Menu.tsx
@@ -439,15 +439,17 @@ export default defineComponent({
forceSubMenuRender: computed(() => props.forceSubMenuRender),
rootClassName: hashId,
});
+
+ const getChildrenList = () => itemsNodes.value || flattenChildren(slots.default?.());
return () => {
- const childList = itemsNodes.value || flattenChildren(slots.default?.());
+ const childList = getChildrenList();
const allVisible =
lastVisibleIndex.value >= childList.length - 1 ||
mergedMode.value !== 'horizontal' ||
props.disabledOverflow;
// >>>>> Children
- const wrappedChildList =
- mergedMode.value !== 'horizontal' || props.disabledOverflow
+ const getWrapperList = childList => {
+ return mergedMode.value !== 'horizontal' || props.disabledOverflow
? childList
: // Need wrap for overflow dropdown that do not response for open
childList.map((child, index) => (
@@ -458,6 +460,7 @@ export default defineComponent({
v-slots={{ default: () => child }}
>
));
+ };
const overflowedIndicator = slots.overflowedIndicator?.() || ;
return wrapSSR(
@@ -470,7 +473,7 @@ export default defineComponent({
class={[className.value, attrs.class, hashId.value]}
role="menu"
id={props.id}
- data={wrappedChildList}
+ data={getWrapperList(childList)}
renderRawItem={node => node}
renderRawRest={omitItems => {
// We use origin list since wrapped list use context to prevent open
@@ -514,7 +517,7 @@ export default defineComponent({
>
-
{wrappedChildList}
+
{getWrapperList(getChildrenList())}
,