From 368c6c3e7d814008aea7b91c0291e07240bb5d46 Mon Sep 17 00:00:00 2001 From: jljsj Date: Wed, 30 Oct 2019 16:47:29 +0800 Subject: [PATCH] fix portal wrapper getContainer #https://github.com/ant-design/ant-design/issues/19487 --- package.json | 2 +- src/PortalWrapper.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a5ec29b6..8f30f047 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rc-util", - "version": "4.14.2", + "version": "4.14.3", "description": "Common Utils For React Component", "keywords": [ "react", diff --git a/src/PortalWrapper.js b/src/PortalWrapper.js index afeb0290..6ff15ec5 100644 --- a/src/PortalWrapper.js +++ b/src/PortalWrapper.js @@ -48,7 +48,10 @@ class PortalWrapper extends React.Component { if (visible !== prevVisible) { openCount = visible && !prevVisible ? openCount + 1 : openCount - 1; } - if (getContainer !== prevGetContainer) { + const getContainerIsFunc = typeof getContainer === 'function' + && typeof prevGetContainer === 'function'; + if (getContainerIsFunc ? getContainer.toString() !== prevGetContainer.toString() + : getContainer !== prevGetContainer) { _self.removeCurrentContainer(false); } } @@ -78,7 +81,9 @@ class PortalWrapper extends React.Component { if (!this.container) { this.container = document.createElement('div'); const parent = this.getParent(); - parent.appendChild(this.container); + if (parent) { + parent.appendChild(this.container); + } } this.setWrapperClassName(); return this.container;