Javascript 从URL加载JS文件并等待它';他被处决了 问题:

Javascript 从URL加载JS文件并等待它';他被处决了 问题:,javascript,reactjs,create-react-app,Javascript,Reactjs,Create React App,我正在尝试从CreateReact应用程序中的外部URL加载javascript文件。我需要这个javascript文件在react开始呈现根组件之前完成加载和执行 这是因为我需要这个javascript文件放在组件树下更深处的窗口对象上的东西。不幸的是,我不控制这个javascript文件,但需要它 此文件的URL因每个环境(开发、登台、产品等)而异。构建过程当前构建一次create react应用程序,然后通过每个环境提升包。我从JSON文件中获取相对URL,我在应用程序的最开始加载该文件

我正在尝试从CreateReact应用程序中的外部URL加载javascript文件。我需要这个javascript文件在react开始呈现根组件之前完成加载和执行

这是因为我需要这个javascript文件放在组件树下更深处的窗口对象上的东西。不幸的是,我不控制这个javascript文件,但需要它

此文件的URL因每个环境(开发、登台、产品等)而异。构建过程当前构建一次create react应用程序,然后通过每个环境提升包。我从JSON文件中获取相对URL,我在应用程序的最开始加载该文件

尝试的解决方案 我尝试过使用
react
,它允许我在运行时修改URL,但我需要在继续之前完成JS文件的加载/解释。 这种阻塞/加载时间似乎是我无法控制的

我还尝试在
RenderDom.Render
调用之前手动添加脚本标记,并将其包装在promise中。这是行不通的

有谁能给我一些关于如何解决这个问题的指导吗


谢谢。

试试
react脚本加载程序hoc

这将为您提供一个
HOC
,您可以使用组件
param
调用此
HOC
。这将为您成功地提供一个prop
scriptsloaded
。如果这是
true
,则脚本已加载

下面是一个例子:

function YourComponent ({ scriptsLoadedSuccessfully }) {
   if (scriptsLoadedSuccessfully){
      return <div>Script loaded do your stuff here.</div>
   } else {
      return <div>Script not loaded wait until it gets loaded.</div>
   }
}

export default ScriptLoader('http://YOUR_SCRIPT_URL')(YourComponent);
函数组件({scriptsLoadedSuccessfully}){
如果(脚本成功加载){
返回脚本加载在这里做你的东西。
}否则{
返回未加载的脚本,请等待它加载。
}
}
导出默认脚本加载器('http://YOUR_SCRIPT_URL"(你的组成部分),;