如何在ReactJ中重新初始化外部JavaScript



我在第一次加载上动态添加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'

最新更新