Нуждается в решении проблемы, которую я задавал многими способами без разрешения.
У меня есть внешние скрипты от TripAdvisor, которые монтируются в компоненте как componentDidMount
. Также shouldComponentUpdate()
как false
, чтобы избежать в будущем eventListeners
, также установленный componentDidMount
в layouts/index.js
от влияния на содержание TripAdvisor, чтобы исчезнуть из-за повторного рендеринга DOM.
componentDidMount () {
const tripadvisorLeft = document.createElement("script");
tripadvisorLeft.src = "https://www.jscache.com/wejs?wtype=selfserveprop&uniq=789&locationId=10467767&lang=en_AU&rating=true&nreviews=0&writereviewlink=true&popIdx=true&iswide=true&border=false&display_version=2";
document.body.appendChild(tripadvisorLeft);
const tripadvisorRight = document.createElement("script");
tripadvisorRight.src = "https://www.jscache.com/wejs?wtype=selfserveprop&uniq=998&locationId=10467767&lang=en_AU&rating=false&nreviews=4&writereviewlink=false&popIdx=false&iswide=true&border=false&display_version=2";
document.body.appendChild(tripadvisorRight);
}
shouldComponentUpdate() {
return false;
}
Проблема заключается в том, что при использовании Link
либо react-route
, либо gatsby-link
со страницы, содержащей компонент, содержимое TripAdvisor не отображается.
Если я обновлю браузер на странице - контент будет доступен.
Смотрите здесь - пример
Как мне unmount
, forceUpdate
или любое другое решение для повторного рендеринга этих скриптов на route change
?
Полный исходный код можно найти здесь .