Не вдається перетворити об'єкт у помилку примітивного значення в застосуванні реакції?


27

Я розробляю просту завантажувальну програму react-spring, але через проблему GitHub відтворюю свої файли для запуску програми за допомогою IntelliJ та встановлюю модулі вузлів, використовуючи дані про залежність файлу попереднього пакета.json.

Якщо я використовую навігаційну панель, що згортається (гамбургер -> чуйні навігаційні панелі, які згортаються в перегляді мобільних пристроїв) і натискаю кнопку гамбургер, щоб побачити посилання навігації, це дає мені помилку нижче. Але всі ці речі йшли добре в попередній заявці.

TypeError: Cannot convert object to primitive value
HTMLDivElement.<anonymous>
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/js/src/collapse.js:346
  343 |   ...typeof config === 'object' && config ? config : {}
  344 | }
  345 | 
> 346 | if (!data && _config.toggle && /show|hide/.test(config)) {
      | ^  347 |   _config.toggle = false
  348 | }
  349 | 
View compiled
Function.each
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:381
  378 | if ( isArrayLike( obj ) ) {
  379 |     length = obj.length;
  380 |     for ( ; i < length; i++ ) {
> 381 |         if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
      | ^  382 |            break;
  383 |         }
  384 |     }
View compiled
jQuery.fn.init.each
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:203
  200 | 
  201 | // Execute a callback for every element in the matched set.
  202 | each: function( callback ) {
> 203 |     return jQuery.each( this, callback );
      | ^  204 | },
  205 | 
  206 | map: function( callback ) {
View compiled
jQuery.fn.init._jQueryInterface [as collapse]
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/js/src/collapse.js:337
  334 | }
  335 | 
  336 | static _jQueryInterface(config) {
> 337 |   return this.each(function () {
      | ^  338 |     const $this   = $(this)
  339 |     let data      = $this.data(DATA_KEY)
  340 |     const _config = {
View compiled
HTMLDivElement.<anonymous>
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/js/src/collapse.js:385
  382 |     const $target = $(this)
  383 |     const data    = $target.data(DATA_KEY)
  384 |     const config  = data ? 'toggle' : $trigger.data()
> 385 |     Collapse._jQueryInterface.call($target, config)
  386 |   })
  387 | })
  388 | 
View compiled
Function.each
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:381
  378 | if ( isArrayLike( obj ) ) {
  379 |     length = obj.length;
  380 |     for ( ; i < length; i++ ) {
> 381 |         if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
      | ^  382 |            break;
  383 |         }
  384 |     }
View compiled
jQuery.fn.init.each
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:203
  200 | 
  201 | // Execute a callback for every element in the matched set.
  202 | each: function( callback ) {
> 203 |     return jQuery.each( this, callback );
      | ^  204 | },
  205 | 
  206 | map: function( callback ) {
View compiled
HTMLButtonElement.<anonymous>
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/js/src/collapse.js:381
  378 | const selector = Util.getSelectorFromElement(this)
  379 | const selectors = [].slice.call(document.querySelectorAll(selector))
  380 | 
> 381 | $(selectors).each(function () {
      | ^  382 |   const $target = $(this)
  383 |   const data    = $target.data(DATA_KEY)
  384 |   const config  = data ? 'toggle' : $trigger.data()
View compiled
HTMLDocument.dispatch
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:5428
  5425 | event.handleObj = handleObj;
  5426 | event.data = handleObj.data;
  5427 | 
> 5428 | ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
       | ^  5429 |  handleObj.handler ).apply( matched.elem, args );
  5430 | 
  5431 | if ( ret !== undefined ) {
View compiled
HTMLDocument.elemData.handle
C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/webapp/front-end/node_modules/jquery/dist/jquery.js:5232
  5229 | 
  5230 |        // Discard the second event of a jQuery.event.trigger() and
  5231 |        // when an event is called after a page has unloaded
> 5232 |        return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
       | ^  5233 |          jQuery.event.dispatch.apply( elem, arguments ) : undefined;
  5234 |    };
  5235 | }
View compiled
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browsers developer console to further inspect this error.  Click the 'X' or hit ESC to dismiss this message.```

я почав отримувати цю помилку саме сьогодні, цікаво, чи це якась дивацтво в новому випуску чогось?
matgargano

Відповіді:


55

Спочатку видаліть jQuery:

npm remove jquery

а потім перевстановіть його:

npm install jquery@~3.4.1

Це зафіксувало це для мене. Я цілу годину витрачаю на це, цікавлячись, що сталося. :( Дуже дякую!
DaveK

Дякую, це було те саме, що я зробив врешті-решт, щоб вирішити цю справу.
Хасінду Даханаяке

1
Оновлено, але я хотів би додати, що потрібно для перезавантаження / відновлення. Або npm run devабо перезавантажте і знову npm run watch.
Veljko Стефанович

24

У мене була та сама проблема в проекті 6 рейок, яку я розробляв. Я використовую завантажувальну версію 4.4.1, і в мене була точно така ж проблема з моїм навігаційним рядком, що руйнується: Навбар руйнується, але кнопку омбре, яка з’являється при згортанні, не можна було натискати.

Рішення: зменшити jquery з 3.5.0 до 3.4.1. Наразі я не розглядав фактичну причину помилки.

Щоб додати більше деталей, версію jquery слід оновити package.jsonзалежно від цього і не забудьте запустити yarn install --check-filesпісля цього, щоб зміни були застосовані.


Зараз я використовую jquery 3.4.1
Hasindu Dahanayake

FWIW це також не працює для мене. Я використовував WordPress, який використовує стару версію 1.x, я помінявся на 3.4.1 і все ще бачу проблему. Я думаю , що це пов'язано з чим - то досить нове , оскільки є дуже схожі посади в останню годину (див stackoverflow.com/questions/61177140 / ... )
matgargano

Знайдіть свій пакет Jquery в проектних node_modules, видаліть його та перевстановіть за допомогою цієї команди, npm install jquery@~4.3.1
Sylvernus Akubo

Я тягнув у двох версіях jQuery, ігнорував вищесказане, все добре!
матгаргано

Я б хотів, щоб я міг підкреслити цю відповідь кілька разів
цікаво Помітив

14

Це пов’язано з jQuery 3.5.0.Це надзвичайна зміна, яка впливає на багато плагінів. Тимчасове повернення до попередньої версії jQuery (like 3.4.1)виправленої проблеми.

або

Знайдіть пакет Jquery в проекті node_modules, видаліть його та встановіть заново за допомогою цієї команди

npm install jquery@~3.4.1

Джерело: jQuery Issue № 4665


3

Я видалив jQuery за допомогою yarn remove jquery, а потім встановив yarn add jquery@3.4.1для пониження версії.

Проблема полягала в тому, що у файлі yarn.lock все ще знайдено 3.5.0, тому помилка все ще виникала.

Мені довелося додати в package.json, поза "dependencies"розділом:

"resolutions": { "jquery": "3.4.1" },

Нарешті помилка зникла.


3

Я вже використовував jquery 3.41, але у мене виникла проблема після переміщення моїх файлів проекту в інший проект, тому у випадку використання jquery 3.41 все ж спробуйте переконатися, виконуючи команди,

1) npm видалити jquery

2) встановити npm jquery@~3.4.1

Ці команди вирішили мою проблему.


2

Відкрийте package.jsonта замініть

"jquery": "^3.4.1",

з

"jquery": "3.4.1"

Джерело


1
У мого файлу package.json у мене був найкращий варіант, і все ще виникала помилка. Змінивши його на опціон без карети та перекомпіляції активів, це зафіксувало мене. Дякую!
Апельсини13

1
@ Апельсини13 Мені це дуже приємно знати, що я можу допомогти комусь! Мир!
xameeramir

0

Видаліть пакет Jquery з node_modulesпапки.

Потім перевстановіть його за допомогою цієї команди.

npm install jquery@3.5.0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.