From ef8f532ce090c28c3e5b07afee82e93ce8ea0389 Mon Sep 17 00:00:00 2001 From: Todor Petrov <tpetrov92@gmail.com> Date: Fri, 9 Nov 2018 10:56:15 +0200 Subject: [PATCH] Temporary meta tags container is now unmounted, when the MetaTags component is --- src/meta_tags.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/meta_tags.js b/src/meta_tags.js index c3c4af2..240cd95 100644 --- a/src/meta_tags.js +++ b/src/meta_tags.js @@ -17,6 +17,11 @@ class MetaTags extends Component { return; } } + componentWillUnmount() { + if (this.temporaryElement) { + ReactDOM.unmountComponentAtNode(this.temporaryElement); + } + } handleChildrens() { const {children} = this.props; @@ -26,9 +31,8 @@ class MetaTags extends Component { const headComponent = <div className="react-head-temp">{children}</div>; - const temp = document.createElement("div"); - ReactDOM.render(headComponent, temp, () => { - const childStr = temp.innerHTML; + ReactDOM.render(headComponent, this.temporaryElement, () => { + const childStr = this.temporaryElement.innerHTML; //if html is not changed return if(this.lastChildStr === childStr){ @@ -37,7 +41,7 @@ class MetaTags extends Component { this.lastChildStr = childStr; - let childNodes = Array.prototype.slice.call(temp.querySelector('.react-head-temp').children); + let childNodes = Array.prototype.slice.call(this.temporaryElement.querySelector('.react-head-temp').children); const head = document.head; const headHtml = head.innerHTML; @@ -67,6 +71,7 @@ class MetaTags extends Component { } componentDidMount() { + this.temporaryElement = document.createElement('div'); this.handleChildrens(); } componentDidUpdate(oldProps) { -- GitLab