[英]React: How to use same component twice in same page but loading one script tag for both just one time
我创建了一个React组件,我想在页面内使用两次(或多次),并且需要在页面的头部加载一个脚本标签,但是只能加载一次! 我的意思是,即使我在页面中使用组件两次或更多次,它也应该仅在头部添加一次脚本标记。 问题在于此脚本标记绝对应该是组件的一部分,而不是静态地插入到页面的开头。
谁能帮助我实现奇迹? 在此先多谢!
您可以设置父组件的状态以将脚本已添加到内存中。
if (!this.state.scriptAdded) {
// Add script tag
this.setState({ scriptAdded: true });
}
您可以尝试使用React react-helmet
从React组件中管理对<head>
更改。
特别是,您可以检查此示例 ,其中四次渲染同一元素仅添加一次脚本标签。
为了完整起见,使用示例中的相关代码(尽管有趣的部分是看它如何执行):
import { Helmet } from "react-helmet";
function ComponentWithHeader() {
return (
<div>
<div>Oh hi</div>
<Helmet>
<script src="fake-url.js" />
</Helmet>
</div>
);
}
const App = () => (
<div>
<ComponentWithHeader />
<ComponentWithHeader />
<ComponentWithHeader />
<ComponentWithHeader />
</div>
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.