Skip to content

Commit 9eac1a1

Browse files
committed
fix: picker nest select error, close #6062 #5994
1 parent 213c3a4 commit 9eac1a1

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

components/vc-picker/PickerTrigger.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ function PickerTrigger(props: PickerTriggerProps, { slots }) {
9696
default: slots.default,
9797
popup: slots.popupElement,
9898
}}
99+
tryPopPortal
99100
></Trigger>
100101
);
101102
}

components/vc-trigger/Trigger.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ export default defineComponent({
8686
autoDestroy: { type: Boolean, default: false },
8787
mobile: Object,
8888
getTriggerDOMNode: Function as PropType<(d?: HTMLElement) => HTMLElement>,
89+
// portal context will change
90+
tryPopPortal: Boolean, // no need reactive
8991
},
9092
setup(props) {
9193
const align = computed(() => {
@@ -95,7 +97,7 @@ export default defineComponent({
9597
}
9698
return popupAlign;
9799
});
98-
const { setPortal, popPortal } = useInjectTrigger();
100+
const { setPortal, popPortal } = useInjectTrigger(props.tryPopPortal);
99101
const popupRef = ref(null);
100102
const setPopupRef = val => {
101103
popupRef.value = val;

components/vc-trigger/context.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ export const useProviderTrigger = () => {
1818
};
1919
};
2020

21-
export const useInjectTrigger = () => {
22-
return inject(TriggerContextKey, { setPortal: () => {}, popPortal: false });
21+
export const useInjectTrigger = (tryPopPortal?: boolean) => {
22+
return tryPopPortal
23+
? inject(TriggerContextKey, { setPortal: () => {}, popPortal: false })
24+
: { setPortal: () => {}, popPortal: false };
2325
};
2426

2527
export interface PortalContextProps {

0 commit comments

Comments
 (0)