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 = {