Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用添加到react JS的外部脚本?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何使用添加到react JS的外部脚本?

Javascript 如何使用添加到react JS的外部脚本?,javascript,reactjs,Javascript,Reactjs,我想在我的react组件a中添加 http://xxx.xxx/XX.js 我知道我可以简单地使用JSX添加它,但我不知道如何使用它 例如,此脚本有一个名为a.Sort()的函数,如何从组件调用和使用它?您可以在/public/index.html中包含该标记,然后在普通JS代码中使用该脚本,例如,如果您想使用jQuery: 在public/index.html中包括以下内容: <script src="https://ajax.googleapis.com/ajax/libs/jquer

我想在我的react组件a中添加

http://xxx.xxx/XX.js

我知道我可以简单地使用JSX添加它,但我不知道如何使用它


例如,此脚本有一个名为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>

您可以通过添加所需的脚本来修改index.html文件(如果正在使用)


或者,如果您无法编辑或不使用它,则有一组附加组件可以解决此问题,例如,您可以异步加载脚本并在加载时访问它

componentDidMount() {
  const script = document.createElement("script");
  script.src = "/static/libs/your_script.js";
  script.async = true;
  script.onload = () => this.scriptLoaded();

  document.body.appendChild(script);
}
它应该连接到
窗口

 scriptLoaded() {
   window.A.sort();
 }


有时我们需要使用外部js库,在这种情况下,我们需要将脚本标记插入到组件中,但在react中,我们使用jsx,因此我们不能像在HTML中添加脚本标记那样直接添加脚本标记

在本例中,我们将看到如何将外部脚本文件加载到头部、主体元素或组件中

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后

<script>http://xxx.xxx/XX.js</script>

我认为这可能是最简单的方法。请记住,您必须在函数的左侧写入“窗口”。

您可以使用npm

步骤1:npm i反应头盔

步骤2:

<Helmet>
    <script src="/path/to/resource.js" type="text/javascript" />
</Helmet>


您是否尝试过使用类似于从“我的js脚本”导入的东西导入它它的外部脚本,来自web,我不能像你提到的那样导入它..所以文件来自CDN?它的可能副本不是副本,问题与CDN无关:脚本来自何处并不重要,问题是如何在脚本中调用函数。为什么要引用jQuery?我引用jQuery作为引用外部JS的示例,以展示如何包含和使用JS文件啊!我明白了,对不起,我没有得到你的上下文。这对我不好,因为我想动态添加它,而不是硬编码它。。所以我必须在组件内部使用它…如果您的外部脚本需要包含在标题中,您可以使用React头盔动态管理进入index.html页面标题的内容好的,React load脚本似乎可以工作,但在我加载它之后,如果我使用react load script加载脚本,如何使用脚本中的函数?如前所述,例如,使用脚本中的函数A.sort(),我不确定这是否是在ReactJS中加载外部脚本的最佳方法?您是否测试过使用CDN将脚本添加到index.html或在组件中执行的操作的性能?您节省了时间!
window.A
引用是指什么?每次在我的
loaded
函数中调用它时,我都会得到一个运行时错误
无法读取未定义的属性“sort”
@GROVER。是一个加载的模块,它将自身附加到窗口对象。A仅用于说明目的。
<script>http://xxx.xxx/XX.js</script>
window.A.sort();
<Helmet>
    <script src="/path/to/resource.js" type="text/javascript" />
</Helmet>