2017-01-23 1 views
1

Создайте приложение React с помощью create-react-app, чтобы приложение было готово к серверу.'Uncaught ReferenceError: jQuery не определен' с помощью create-react-app

При импорте загрузочного javascript-плагина, такого как 'affix.js', я получаю сообщение об ошибке «Uncaught ReferenceError: jQuery не определен», и страница больше не загружается.

Импортировать все модули через файл index.js, так как с помощью приложения create-react-app он, похоже, загружает импорт src и 'link' из файла index.html.

ввожу бутстраповское плагин следующим образом: «самозагрузки/JS/affix.js» Импорт

Пытались импорта JQuery следующим образом, в верхней части index.js файла, но ни один не работает:

  1. импорт JQuery из 'JQuery'
  2. импорта JQuery из 'JQuery', окно $ = window.jQuery = JQuery.
  3. импорт JQuery из 'JQuery'
  4. импорта $ из 'JQuery'
  5. импорт 'JQuery/расстояние/jquery.js';
  6. требуют (»./ node_modules/JQuery/DIST/jquery.js')

Любые идеи?

+0

Я думаю, не импортируйте 'jquery' таким образом. Просто поместите ссылку 'cdn jquery' в html-файл, она должна работать. используйте это: '' –

+0

@MayankShukla благодарит за это! В заключение. Раньше я пробовал много других способов. Я предполагаю, что это связано с тем, как index.html просматривает каталоги папок, когда часть приложения create-react-app. Таким образом, CDN будет работать в этом случае. Благодаря! Не могли бы вы также опубликовать это как официальный ответ?Вы только что спасли меня, восстановив приложение снизу вверх, используя expressJS, который я собирался сделать с помощью учебника, так как я еще не создал приложение nodeJs или expressJs раньше, чем вы, вероятно, спасли меня, как полдня. Благодаря! –

+0

@MayankShukla также любые идеи относительно того, почему мои методы импорта выше не работали? –

ответ

4

Создать приложение для поддержки приложений здесь.

import $ from 'jquery'; 

, а затем с помощью

$.something() 

должен работать нормально , если вы используете JQuery 2.x или выше.

Если это не проблема, сообщите нам об этом.


В ваших примерах, проблема может быть, что вы написали import jquery from 'jquery' но использовали jQuery в качестве имени переменной. Вы должны были написать import jQuery from 'jquery' (или любое другое имя, если вы используете его последовательно). Имена переменных чувствительны к регистру в JavaScript.

+0

Спасибо за ответ. Я уже пытался «импортировать $ из« jquery », и он дает ту же ошибку. Кроме того, в отношении вашего предыдущего комментария вы можете увидеть исходный код здесь, где я в настоящее время импортирую jquery через CDN (https://github.com/smaameri/keywords-finder). Чтобы проверить ошибку, вы можете удалить ссылку CDN из index.html, а затем попытаться импортировать jquery, как указано выше, в App.js. Вы увидите ссылочную ошибку. Будет ли проблема с файлами, как вы сказали. –

2

В случае, если кто-то приземлится здесь. Я решил аналогичную проблему для «создания реагирующего-приложения» с помощью этого:

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

и импортировать другие пакеты, которые нужны Jquery вы должны импортировать эти пакеты после этого, в affix.js случае

require 'bootstrap/js/affix.js';