Reaksiyon uygulamasında nesne ilkel değer hatasına dönüştürülemiyor mu?


27

Basit bir tepki yayı önyükleme uygulaması geliştiriyorum, ancak GitHub sorunu nedeniyle IntelliJ kullanarak uygulama başlangıç ​​dosyalarımı yeniden oluşturuyorum ve önceki modülün package.json dosyasının bağımlılık verilerini kullanarak düğüm modüllerini yükledim.

Çöken bir gezinme çubuğu (hamburger çubuğu -> mobil görünümde daralyan duyarlı gezinme çubukları) kullanır ve gezinme bağlantılarını görmek için hamburger düğmesini tıklarsam bana aşağıdaki hatayı verir. Ancak tüm bunlar önceki uygulamada iyi gitti.

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.```

Bu hatayı bugün kendim almaya başladım, bir şeyin yeni bir sürümünde gariplik olup olmadığını merak ediyorum?
matgargano

Yanıtlar:


55

İlk olarak, jQuery'yi kaldırın:

npm remove jquery

ve sonra yeniden yükleyin:

npm install jquery@~3.4.1

Bu benim için düzeltildi. Bir saat geçirdim, ne olduğunu merak ediyorum. :( Çok teşekkür ederim!
DaveK

Teşekkür ederim, bu sonunda bu konuyu çözmek için yaptığımla aynıydı.
Hasindu Dahanayake

1
Upvoted, ancak yeniden başlatmak / yeniden oluşturmak için gerekli eklemek istiyorum. Ya npm run devda yeniden başlatın npm run watch.
Veljko Stefanovic

24

Aynı problemi geliştirdiğim raylar 6 projesinde de yaşadım. Önyükleme 4.4.1 kullanıyorum ve daraltma gezinme çubuğumla aynı sorunu yaşadım: Gezinme çubuğu daralıyor, ancak daralma sırasında görünen hamburger düğmesi tıklanabilir değildi.

Çözüm: Jquery'yi 3.5.0'dan 3.4.1'e düşürün. Şimdilik hatanın asıl nedenine bakmadım.

Daha fazla ayrıntı eklemek için jquery sürümü package.jsonbağımlılıklarla güncellenmeli yarn install --check-filesve değişikliğin uygulanması için bunu yaptıktan sonra çalıştırmayı unutmayın .


Şu anda jquery 3.4.1 kullanıyorum
Hasindu Dahanayake

FWIW bu da benim için çalışmıyor. Bazı eski 1.x sürümünü kullanan WordPress kullanıyordum, 3.4.1 için değiştirdim ve hala sorunu görüyorum. Sanırım son bir saat içinde çok benzer gönderiler olduğu için oldukça yeni bir şeyle ilgili (bkz. Stackoverflow.com/questions/61177140/… )
matgargano

Jquery paketinizi node_modules projesinde bulun, silin ve bu komutu kullanarak yeniden yükleyin, npm install jquery@~4.3.1
Sylvernus Akubo

Ben jQuery 2 sürümlerinde çekiyordu, yukarıdaki görmezden, hepsi iyi!
matgargano

Ben bu cevabı birden çok kez
oylayabilirdim

14

Bu, jQuery 3.5.0.birçok eklentiyi etkileyen önemli bir değişikliktir. Geçici olarak önceki bir sürüme geri dönmek jQuery (like 3.4.1), sorunu benim için düzeltti.

veya

Projede Jquery paketinizi bulun node_modules, silin ve bu komutu kullanarak yeniden yükleyin

npm install jquery@~3.4.1

Kaynak: jQuery Sayı # 4665


3

İle jQuery kaldırıldı yarn remove jqueryve sonra yarn add jquery@3.4.1düşürmek için yüklendi .

Sorun 3.5.0 hala yarn.lock dosyasında bulundu, bu yüzden hata hala oluşuyordu.

Ben "dependencies"bölümün dışında package.json eklemek zorunda kaldı :

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

Sonunda hata gitti.


3

Zaten jquery 3.41 kullandım ama proje dosyalarımı başka bir projeye taşıdıktan sonra sorunu aldım, bu yüzden jquery 3.41 kullanıldığında hala komutlarını çalıştırarak deneyin ve görün,

1) npm kaldır jquery

2) npm kurulum jquery@~3.4.1

Bu komutlar sorunumu çözdü.


2

package.jsonve değiştir

"jquery": "^3.4.1",

ile

"jquery": "3.4.1"

Kaynak


1
Benim package.json dosyasında üst seçeneği vardı ve hala hatayı alıyordu. Düzeltme işareti olmadan seçeneğe dönüştürülerek varlıkları yeniden derlemek benim için düzeltti. Teşekkür ederim!
Oranges13

1
@ Oranges13 Birisine yardım edebileceğimi bilmek beni çok mutlu ediyor! Barış!
xameeramir

0

Jquery paketini node_modulesklasörden kaldırın .

Ardından bu komutu kullanarak yeniden yükleyin.

npm install jquery@3.5.0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.