From 27e0754f5c1a45680f48679cfe3318df5c0d75aa Mon Sep 17 00:00:00 2001 From: yuhengshen Date: Sat, 19 Apr 2025 20:53:17 +0800 Subject: [PATCH] fix(DropdownMenu): DropdownMenu overlay flickering (#13436) --- packages/vant/src/dropdown-item/DropdownItem.tsx | 1 + packages/vant/src/dropdown-menu/DropdownMenu.tsx | 4 ++-- .../test/__snapshots__/index.spec.tsx.snap | 16 ++++++++-------- packages/vant/src/dropdown-menu/types.ts | 2 ++ packages/vant/src/popup/Popup.tsx | 2 +- packages/vant/src/popup/README.md | 1 + packages/vant/src/popup/README.zh-CN.md | 1 + packages/vant/src/popup/shared.ts | 2 ++ 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/packages/vant/src/dropdown-item/DropdownItem.tsx b/packages/vant/src/dropdown-item/DropdownItem.tsx index 95f19d9de..8aa64539e 100644 --- a/packages/vant/src/dropdown-item/DropdownItem.tsx +++ b/packages/vant/src/dropdown-item/DropdownItem.tsx @@ -211,6 +211,7 @@ export default defineComponent({ role="menu" class={bem('content')} overlay={overlay} + disableOverlayTransition={parent.opened.value} position={direction === 'down' ? 'top' : 'bottom'} duration={state.transition ? duration : 0} lazyRender={props.lazyRender} diff --git a/packages/vant/src/dropdown-menu/DropdownMenu.tsx b/packages/vant/src/dropdown-menu/DropdownMenu.tsx index 3175fab9d..d68824ead 100644 --- a/packages/vant/src/dropdown-menu/DropdownMenu.tsx +++ b/packages/vant/src/dropdown-menu/DropdownMenu.tsx @@ -157,8 +157,8 @@ export default defineComponent({ ); }; - useExpose({ close }); - linkChildren({ id, props, offset, updateOffset }); + useExpose({ close, opened }); + linkChildren({ id, props, offset, opened, updateOffset }); useClickAway(root, onClickAway); useEventListener('scroll', onScroll, { target: scrollParent, diff --git a/packages/vant/src/dropdown-menu/test/__snapshots__/index.spec.tsx.snap b/packages/vant/src/dropdown-menu/test/__snapshots__/index.spec.tsx.snap index 53a92cb9f..603d9c1be 100644 --- a/packages/vant/src/dropdown-menu/test/__snapshots__/index.spec.tsx.snap +++ b/packages/vant/src/dropdown-menu/test/__snapshots__/index.spec.tsx.snap @@ -41,7 +41,7 @@ exports[`click option 1`] = ` css="true" >