【发布时间】:2019-08-28 18:28:19
【问题描述】:
我有一些问题我一个小时都想不通..
这是什么:
我正在使用 react 和 react 路由器。 我有一些自己的路由组件,例如 /about
在这个组件中,我需要放置一些第 3 方 javascript 文件,该文件可以从某些服务获取一些 iframe 到我的页面。
这个服务告诉我添加他们的脚本并渲染一些具有特定 id 的 div
我把这个脚本放到我的组件中,像这样的componentDidMount 方法:
componentDidMount() {
var loadScript = function(src) {
var tag = document.createElement("script");
tag.async = false;
tag.src = src;
var body = document.getElementsByTagName("body")[0];
body.appendChild(tag);
};
loadScript("https://somewhere/js?for=myid");
}
然后在我的渲染中:
render() {
return (
<div className="content">
<div id="iframe_app"></div>
</div>
);
}
到这里一切正常,但是这个脚本标签只调用了一次.. 当我更改路线时,例如转到我的应用程序的另一个页面并返回此组件脚本不工作没有出现在网络选项卡中。
但如果我用ctrl + r 努力刷新窗口,任何事情都会再次起作用。
所以我不知道为什么会发生,因此我想直接用
刷新 componentDidMount 上的页面window.location.reload()
但是那个时候它在循环中工作,所以我的页面刷新无限
我怎么知道这个?
【问题讨论】:
标签: javascript reactjs