繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM