javascript - 在 React 组件中动态加载外部 javascript 链接
问题描述
我正在尝试添加一个来自 React 组件中的一个 API 响应的外部 javascript 链接。下面是我的代码。不幸的是,它不起作用。有什么我错过了吗?我需要重新加载组件吗?如果您之前有任何将外部 JavaScript 添加到您的 React 组件的经验,请指出。先感谢您!
useEffect(() => {
requestData();
}, []);
requestData = () => {
try {
const response = await axios.get('REQUEST DATA URL');
if (response.status !== 200) {
throw response;
}
const isExternalJsEnabled = get(
response,
"data.result_data.is_external_js_enabled",
false
);
if (isExternalJsEnabled) {
loadExternalJs(response);
} else {
// will do normal task here without loading external js
}
} catch (error) {
setDefaultError();
}
}
const loadExternalJs = async responseData => {
try {
if (isJsLoaded) {
// will do task which need external js
} else {
const jsUrl = get(responseData, "data.result_data.external_js_url","");
if (jsUrl) {
const script = document.createElement("script");
script.src = jsUrl;
script.async = true;
document.body.appendChild(script);
}
/* eslint-disable no-undef */
if (typeof TEST === "undefined") {// Here TEST is the object from external javascript file
// will do normal task here without loading external js
} else {
// will do task which need external js
}
}
} catch (error) {
console.error("Loading external JS failed.");
}
};
解决方案
推荐阅读
- javascript - 是否可以破解 javascript 界面?
- raspberry-pi - libcurl4-openssl-dev :冲突:libssl1.0-dev 但要安装 1.0.2q-2
- c# - 在我的 Web api 端点中解析 HTTP POST 请求正文时出错
- python - passing optional arguments to a function in pandas
- scala - 初始化后更改 Future 的 ExecutionContext
- c++ - 调用 Mitsuba 附加组件的构造函数时,未定义的符号运行时错误是什么意思?
- jekyll - 将变量传递到 for 循环中 - 不起作用
- jquery - Jquery 仅显示所选选项之一 + 必需
- python - 如何在 pandas 中使用 API Endpoint 下载 .csv 文件
- android - 如何只通知一次不同片段中的 liveData 更改?