fix: picker nest select error, close #6062 #5994

pull/6067/head
tangjinzhou 2022-10-30 21:45:59 +08:00
parent 213c3a4059
commit 9eac1a1da5
3 changed files with 8 additions and 3 deletions

View File

@ -96,6 +96,7 @@ function PickerTrigger(props: PickerTriggerProps, { slots }) {
default: slots.default,
popup: slots.popupElement,
}}
tryPopPortal
></Trigger>
);
}

View File

@ -86,6 +86,8 @@ export default defineComponent({
autoDestroy: { type: Boolean, default: false },
mobile: Object,
getTriggerDOMNode: Function as PropType<(d?: HTMLElement) => HTMLElement>,
// portal context will change
tryPopPortal: Boolean, // no need reactive
},
setup(props) {
const align = computed(() => {
@ -95,7 +97,7 @@ export default defineComponent({
}
return popupAlign;
});
const { setPortal, popPortal } = useInjectTrigger();
const { setPortal, popPortal } = useInjectTrigger(props.tryPopPortal);
const popupRef = ref(null);
const setPopupRef = val => {
popupRef.value = val;

View File

@ -18,8 +18,10 @@ export const useProviderTrigger = () => {
};
};
export const useInjectTrigger = () => {
return inject(TriggerContextKey, { setPortal: () => {}, popPortal: false });
export const useInjectTrigger = (tryPopPortal?: boolean) => {
return tryPopPortal
? inject(TriggerContextKey, { setPortal: () => {}, popPortal: false })
: { setPortal: () => {}, popPortal: false };
};
export interface PortalContextProps {