我想添加到我的react组件中
<script>http://xxx.xxx/XX.js</script>
我知道我可以简单地使用 JSX 添加它,我不知道如何使用它,
例如,这个脚本有一个名为 A.Sort() 的函数,我如何调用它并从组件中使用它?
我想添加到我的react组件中
<script>http://xxx.xxx/XX.js</script>
我知道我可以简单地使用 JSX 添加它,我不知道如何使用它,
例如,这个脚本有一个名为 A.Sort() 的函数,我如何调用它并从组件中使用它?
您可以异步加载脚本并在加载时访问它。
componentDidMount() {
const script = document.createElement("script");
script.src = "/static/libs/your_script.js";
script.async = true;
script.onload = () => this.scriptLoaded();
document.body.appendChild(script);
}
它应该附加到window
.
scriptLoaded() {
window.A.sort();
}
或者
scriptLoaded() {
A.sort();
}
您可以在 /public/index.html 中包含该标签,然后像在普通 JS 代码中一样使用该脚本,如果您想使用 jQuery,请参考以下示例:
在您的 public/index.html 中包含以下内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
然后在任何地方您都可以像往常一样使用 jQuery 功能:
window.$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
你可以使用 React Helmet npm
第 1 步: npm i react-helmet
第2步 :
<Helmet>
<script src="/path/to/resource.js" type="text/javascript" />
</Helmet>
有时我们需要使用外部js库,这种情况下我们需要在组件中插入script标签,但是在react中我们使用的是jsx,所以我们不能像在HTML中添加那样直接添加script标签。
在本例中,我们将看到如何将外部脚本文件加载到头部、主体元素或组件中。
componentDidMount() {
const script = document.createElement("script");
script.async = true;
script.src = "https://some-scripturl.js";
script.onload = () => this.scriptLoaded();
//For head
document.head.appendChild(script);
// For body
document.body.appendChild(script);
// For component
this.div.appendChild(script);
}
您可以通过添加所需的脚本来修改您的 index.html 文件(如果您正在使用)。
或者,如果你不能编辑它或者你没有使用它,有一堆附加组件可以解决这个问题,例如react-load-script