From 6c42fa0a4e160c1a17ed1b624662c7282ea623ca Mon Sep 17 00:00:00 2001 From: Gavin <19986739+wjw-gavin@users.noreply.github.com> Date: Sun, 5 Mar 2023 19:43:47 +0800 Subject: [PATCH] fix(DropdownMenu): fix dropdown-item position when expanded by default (#11640) * fix(DropdownMenu): fix dropdown-item position when expanded by default * chore: delete redundant code --- packages/vant/src/dropdown-item/DropdownItem.tsx | 1 + packages/vant/src/dropdown-menu/DropdownMenu.tsx | 3 +-- packages/vant/src/dropdown-menu/types.ts | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/vant/src/dropdown-item/DropdownItem.tsx b/packages/vant/src/dropdown-item/DropdownItem.tsx index 083283f05..00179aa46 100644 --- a/packages/vant/src/dropdown-item/DropdownItem.tsx +++ b/packages/vant/src/dropdown-item/DropdownItem.tsx @@ -100,6 +100,7 @@ export default defineComponent({ state.transition = !options.immediate; if (show) { + parent.updateOffset(); state.showWrapper = true; } }; diff --git a/packages/vant/src/dropdown-menu/DropdownMenu.tsx b/packages/vant/src/dropdown-menu/DropdownMenu.tsx index 1d202a487..98c013e4e 100644 --- a/packages/vant/src/dropdown-menu/DropdownMenu.tsx +++ b/packages/vant/src/dropdown-menu/DropdownMenu.tsx @@ -103,7 +103,6 @@ export default defineComponent({ const toggleItem = (active: number) => { children.forEach((item, index) => { if (index === active) { - updateOffset(); item.toggle(); } else if (item.state.showPopup) { item.toggle(false, { immediate: true }); @@ -143,7 +142,7 @@ export default defineComponent({ ); }; - linkChildren({ id, props, offset }); + linkChildren({ id, props, offset, updateOffset }); useClickAway(root, onClickAway); useEventListener('scroll', onScroll, { target: scrollParent, diff --git a/packages/vant/src/dropdown-menu/types.ts b/packages/vant/src/dropdown-menu/types.ts index 2f6a84b76..862dc050a 100644 --- a/packages/vant/src/dropdown-menu/types.ts +++ b/packages/vant/src/dropdown-menu/types.ts @@ -7,6 +7,7 @@ export type DropdownMenuProvide = { id: string; props: DropdownMenuProps; offset: Ref; + updateOffset: () => void; }; export type DropdownMenuThemeVars = {