From c84d9112f5714c1fead037403b4206c9e8f03272 Mon Sep 17 00:00:00 2001 From: kovsu <2583695112@qq.com> Date: Tue, 26 Sep 2023 15:02:17 +0800 Subject: [PATCH 1/2] fix: setContainer in onBeforeMount for drawer --- components/_util/Portal.tsx | 15 ++++++++++++--- components/message/useMessage.tsx | 3 +-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/components/_util/Portal.tsx b/components/_util/Portal.tsx index 7b4f682b27..c95b851a0b 100644 --- a/components/_util/Portal.tsx +++ b/components/_util/Portal.tsx @@ -23,14 +23,23 @@ export default defineComponent({ // getContainer 不会改变,不用响应式 let container: HTMLElement; const { shouldRender } = useInjectPortal(); + + function setContainer() { + if (shouldRender.value) { + container = props.getContainer(); + } + } + onBeforeMount(() => { isSSR = false; + // drawer + setContainer(); }); onMounted(() => { - if (shouldRender.value) { - container = props.getContainer(); - } + // https://github.com/vueComponent/ant-design-vue/issues/6937 + setContainer(); }); + const stopWatch = watch(shouldRender, () => { if (shouldRender.value && !container) { container = props.getContainer(); diff --git a/components/message/useMessage.tsx b/components/message/useMessage.tsx index b81a07b3b2..3045826108 100644 --- a/components/message/useMessage.tsx +++ b/components/message/useMessage.tsx @@ -91,8 +91,7 @@ const Holder = defineComponent({ closable: false, closeIcon: mergedCloseIcon, duration: props.duration ?? DEFAULT_DURATION, - getContainer: () => - props.staticGetContainer?.() || getPopupContainer.value?.() || document.body, + getContainer: props.staticGetContainer ?? getPopupContainer.value, maxCount: props.maxCount, onAllRemoved: props.onAllRemoved, }); From bcd7859721cb1b43792bdec84bf5ad4ad5719e85 Mon Sep 17 00:00:00 2001 From: kovsu <2583695112@qq.com> Date: Tue, 26 Sep 2023 16:09:56 +0800 Subject: [PATCH 2/2] fix: add judgement --- components/_util/Portal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/_util/Portal.tsx b/components/_util/Portal.tsx index c95b851a0b..caba27b22f 100644 --- a/components/_util/Portal.tsx +++ b/components/_util/Portal.tsx @@ -36,6 +36,7 @@ export default defineComponent({ setContainer(); }); onMounted(() => { + if (container) return; // https://github.com/vueComponent/ant-design-vue/issues/6937 setContainer(); });