我使用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();
}
}
解释:当我改变路线时,我执行了这个脚本。