[英]How to reinitialize external javascript in reactjs?
我在第一次加载时在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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.