javascript - ReactJS - 外部 JS 函数 "is not a function"

标签 javascript reactjs

简而言之,我正在尝试调用我的第 3 方要求我包含的外部 JS 函数,以便使用他们的 API,但无法按预期工作。

根据我所读到的内容,我应该使用,例如 window.extFn()在我的 index.html 中包含外部 JS 之后其中包含 extFn()像这样

<script src="https://example.com/external.js"></script> <-- 实际上不是这样的,请参阅更新 2,因为我在本地导入了库

...并且应该像这里的回答一样使用它:Call external Javascript function from react components无论该函数是在文件内部还是简单地定义在 index.html<script>部分。这适用于我为测试而创建的 JS 文件。

//File: test.js
function test() {
    return "Hello";
}

...导入了 JS 文件 script像往常一样标记,并使用 console.log(window.test())在我的 React 组件的 render() 中返回Hello .

我尝试将导入从 body 移至 HTML head,反之亦然,但我仍然遇到的错误是:

TypeError: window.extFn is not a function
QuickCheckout.render
....
  22 |    }
  23 | 
  24 |    render() {
> 25 |        window.extFn({
  26 |            
View compiled
▶ 20 stack frames were collapsed.

当我查看浏览器控制台时,由于某种原因我有(这似乎是关键问题)

Uncaught SyntaxError: Unexpected token < external.js:1

尝试过console.log(window.extFn)它返回 undefined

所以我认为可能上述JS本身就是问题所在,但我对此束手无策。同时,我已向我的第 3 方支持团队发送了电子邮件,有人对此有任何建议吗?非常感谢。

更新:现在是我的test.js上面的文件在我的实验中有效,生成 Unexpected token <我的控制台中也出现错误...

更新 2:对于您遇到的问题,我深表歉意。但我实际上从本地源导入了 JS,因为必须移植他们的库,因为他们有 jQuery 2 而不是 3。

<script src="assets/js/external.js"></script>

令我愚蠢的是,我忘记了尾随的 / 。感谢您的帮助。

最佳答案

貌似external.js的路径错误,返回的是html文件而不是js文件

您可以在chrome开发工具的“网络”选项卡中查看external.js的请求返回的内容

关于javascript - ReactJS - 外部 JS 函数 "is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446776/

相关文章:

javascript - 如何在javascript中避免for循环内部的for循环

css - 嵌套组件——应用独立样式

reactjs - 将 dom 从子组件更新到父组件

javascript - ReactJS收到回调后不断调用函数

reactjs - react 管理中的自定义按钮

javascript - 使用node.js实现串口实时数据采集

javascript - 单例无法跨多个文件 Nodejs 工作

javascript - 过滤器 :blur() working in Chrome but not Firefox

javascript - document.getElementById 在 asp.net 中的 <div> 上失败

python - 如何在 Django RESTful API 和 React 中使用 csrf_token?