我在第一次加载上动态添加componentDidmount((中的脚本标签。接下来,当我路由到该组件时,我只需要脚本才能再次重新执行。因此,我打电话给window.__sharethis__.initialize();
。此功能被调用,但不会更新计数。我需要调用什么函数,以便我可以重新执行脚本。
const script1 = document.getElementById("shareThisId");
if (script1) {
window.__sharethis__.initialize();
} else {
const script = document.createElement("script");
script.src =
"//platform-api.sharethis.com/js/sharethis.js#property=[some-id]&product=sop?r=" +
Math.random();
script.async = true;
script.id = "shareThisId";
document.body.appendChild(script);
}
请注意,在浏览器重新加载上,计数会更新,但当我使用React-Router路线时,计数不会。
我还尝试从DOM中删除脚本并将其再次添加到ComponentDidmount((中。但是,从DOM删除和更新将不会导致脚本执行。
由于您使用的是WebPack,因此您只需在组件文件中导入JS即可。每当组件安装时,只需启动函数。
import '../../js/example.js'