使用create-react-app'未捕获的ReferenceError:jQuery未定义'

Sam*_*eri 2 jquery twitter-bootstrap reactjs create-react-app

我正在使用create-react-app构建一个React 应用,以便该应用可以用于服务器。

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

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

像这样导入bootstrap插件:import'bootstrap / js / affix.js'

已尝试以以下方式在jindex.js文件顶部导入jquery,但没有任何效果:

  1. 从'jquery'导入jquery
  2. 从窗口'jquery'导入jquery。$ = window.jQuery = jquery;
  3. 从'jquery'导入jQuery
  4. 从'jquery'导入$
  5. 导入'jquery / dist / jquery.js';
  6. require('./ node_modules / jquery / dist / jquery.js')

有任何想法吗?

Dan*_*mov 6

在此处创建React App维护者。

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

然后使用

$.something()
Run Code Online (Sandbox Code Playgroud)

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

如果没有,请提出问题。


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


Upa*_*ana 5

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

import jQuery from 'jquery';
window.jQuery = jQuery;
Run Code Online (Sandbox Code Playgroud)

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

require 'bootstrap/js/affix.js';
Run Code Online (Sandbox Code Playgroud)

  • 似乎不适用于我的 create-react-app。当我加载应用程序并在控制台中输入 window.jQuery 时,我得到了未定义。 (2认同)