路由更改时重新渲染脚本



我使用Gatsby和包react-load-script

我的想法是使用外部加载脚本加载轮询

当我加载页面时,脚本就被加载了,它就可以工作了。我看到我的民意调查。

但当我使用<Link to="..." />更改页面时,脚本似乎总是在这里,但没有激发。所以我没有看到我的民意调查。

为什么?请问如何解决?

<Script
url="https://static.apester.com/js/sdk/latest/apester-sdk.js"
onCreate={this.handleScriptCreate.bind(this)}
onError={this.handleScriptError.bind(this)}
onLoad={this.handleScriptLoad.bind(this)}
/> 
<div className="apester-media" data-media-id="5bfe9820478f42ff6380cbe8exxx" height="416"></div>

盖茨比信息

System:
OS: macOS 10.14
CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.12.0 - /usr/local/bin/node
npm: 6.4.1 - /usr/local/bin/npm
Browsers:
Chrome: 70.0.3538.110
Safari: 12.0
npmPackages:
gatsby: ^2.0.24 => 2.0.43 
gatsby-cli: ^2.4.5 => 2.4.5 
gatsby-image: ^2.0.15 => 2.0.20 
gatsby-plugin-lodash: ^3.0.1 => 3.0.2 
gatsby-plugin-manifest: ^2.0.5 => 2.0.8 
gatsby-plugin-offline: ^2.0.6 => 2.0.13 
gatsby-plugin-react-helmet: ^3.0.0 => 3.0.1 
gatsby-plugin-sharp: ^2.0.7 => 2.0.12 
gatsby-plugin-sitemap: ^2.0.1 => 2.0.2 
gatsby-plugin-styled-components: ^3.0.1 => 3.0.1 
gatsby-source-prismic: ^2.0.0 => 2.1.0 
gatsby-transformer-sharp: ^2.1.4 => 2.1.8 
npmGlobalPackages:
gatsby-cli: 2.4.5

解决方案是使用gatsby-browser.js

在这个文件中,我必须再次重新加载脚本。

exports.onRouteUpdate = () => {
if (window.APESTER) {
window.APESTER.reload();
} 
}

解释:当我改变路线时,我执行了这个脚本。

最新更新