4

我正在使用create-react-app构建一个 React 应用程序,因此该应用程序已准备好服务器。

在导入诸如“affix.js”之类的引导 javascript 插件时,我收到错误“未捕获的 ReferenceError:jQuery 未定义”,并且页面不再加载。

我正在通过 index.js 文件导入所有模块,因为使用 create-react-app 它似乎从 index.html 文件加载了“src”和“link”导入。

我正在像这样导入引导插件: import 'bootstrap/js/affix.js'

已尝试在 index.js 文件的顶部通过以下方式导入 jquery,但没有一个有效:

  1. 从'jquery'导入jquery
  2. 从'jquery'导入jquery,window.$ = window.jQuery = jquery;
  3. 从“jquery”导入 jQuery
  4. 从'jquery'导入$
  5. 导入'jquery/dist/jquery.js';
  6. 要求('./node_modules/jquery/dist/jquery.js')

有任何想法吗?

4

4 回答 4

7

在此处创建 React App 维护者。

import $ from 'jquery';

然后使用

$.something()

如果您使用的是 jQuery 2.x 或更高版本,应该可以正常工作。

如果没有,请提出问题。


在您的示例中,问题可能是您编写import jquery from 'jquery'但用作jQuery变量名。您应该写过import jQuery from 'jquery'(或任何其他名称,只要您始终使用它)。JavaScript 中的变量名区分大小写。

于 2017-01-23T21:23:44.660 回答
4

万一有人降落在这里。我已经通过使用以下方法解决了“create-react-app”的类似问题:

import jQuery from 'jquery';
window.jQuery = jQuery;

并且对于导入需要 jQuery 的其他包,您应该在此之后导入这些包,在 affix.js 的情况下,

require 'bootstrap/js/affix.js';
于 2017-07-04T15:43:20.163 回答
0

您可以将 jquery.js 文件复制到 react “public” 文件夹中并将其导入 index.html 文件中

于 2020-04-14T14:16:14.067 回答
0

通过编辑 index.html 解决了

尝试在 InnerHTML 组件中使用 jQuery 时遇到类似问题。解决问题的方法是在index.html中导入它的源代码:

<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>
于 2022-02-22T16:51:27.213 回答