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;