在componentDidMount()中重新加载脚本

时间:2019-03-26 13:20:42

标签: javascript reactjs react-router

我在我的React项目的组件中使用simplemaps。我在index.html中添加了这两个脚本     <script type="text/javascript" src="map/mapdata.js"></script> <script type="text/javascript" src="map/countrymap.js"></script>

这些脚本将地图加载到以下div中的我的React组件之一中

<div id="map"></div>

由于某种原因,仅当id为“ map”的div位于DOM中以进行初始应用安装时,才会加载此地图。在切换路由时(即,在DOM中不存在具有id =“ map”的这个div)并返回相同的组件(即在DOM中再次存在具有id =“ map”的该div)时,我无法除非重新加载整个应用程序,否则请参见此地图。

2 个答案:

答案 0 :(得分:0)

在js代码中

<script>

//code when switched
if(switched){ 
require('./map/mapdata.js'); 
} else {
require('./map/another.js'); }
</script>

这样的用法会起作用

答案 1 :(得分:0)

好吧,您可以创建一个脚本元素并将其附加到componentDidMount上的正文中。如果要确保只加载一次,还可以添加一个ID并检查该ID是否存在。