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