Tidak dapat mengonversi objek ke kesalahan nilai primitif dalam aplikasi reaksi?

27

Saya sedang mengembangkan aplikasi boot semi-reaksi sederhana, tetapi karena masalah GitHub, saya membuat ulang file aplikasi pemula saya menggunakan IntelliJ dan menginstal modul node menggunakan data dependensi package.json file aplikasi sebelumnya.

Jika saya menggunakan bilah navigasi yang menyusut (bilah hamburger -> navbar responsif yang runtuh pada tampilan seluler) dan klik tombol hamburger untuk melihat tautan nav, itu memberi saya kesalahan di bawah ini. Tetapi semua hal itu berjalan dengan baik di aplikasi sebelumnya.

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.```
Hasindu Dahanayake
sumber
mulai mendapatkan kesalahan ini hanya hari ini sendiri, bertanya-tanya apakah ada keanehan dalam rilis baru sesuatu?
matgargano

Jawaban:

57

Pertama, hapus jQuery:

npm remove jquery

dan kemudian pasang kembali:

npm install jquery@~3.4.1
Edwin Enriquez
sumber
Ini memperbaikinya untuk saya. Saya menghabiskan satu jam penuh untuk bertanya-tanya apa yang terjadi. :( Terima kasih banyak!
DaveK
Terima kasih, ini sama dengan apa yang saya lakukan pada akhirnya untuk menyelesaikan masalah ini.
Hasindu Dahanayake
1
Terpilih, tetapi saya ingin menambahkan yang diperlukan untuk memulai ulang / membangun kembali. Baik npm run devatau restart dan lagi npm run watch.
Veljko Stefanovic
24

Saya memiliki masalah yang sama dalam proyek rel 6 yang saya kembangkan. Saya menggunakan bootstrap 4.4.1 dan memiliki masalah yang sama persis dengan bilah navigasi runtuh saya: Navbar runtuh tetapi tombol hamburger yang muncul saat runtuh tidak dapat diklik.

Solusinya: Turunkan jquery dari 3.5.0 ke 3.4.1. Saya tidak melihat alasan sebenarnya dari kesalahan untuk saat ini.

Untuk menambahkan lebih detail, versi jquery harus diperbarui dalam package.jsondependensi dan jangan lupa dijalankan yarn install --check-filessetelah Anda melakukan ini agar perubahan diterapkan.

Senol Feldmann
sumber
Saat ini saya menggunakan jquery 3.4.1
Hasindu Dahanayake
FWIW ini tidak bekerja untuk saya juga. Saya menggunakan WordPress yang menggunakan versi lama 1.x, saya mengganti 3.4.1 dan masih melihat masalah. Saya pikir ini terkait dengan sesuatu yang agak baru karena ada posting yang sangat mirip dalam satu jam terakhir (lihat stackoverflow.com/questions/61177140/… )
matgargano
Temukan paket Jquery Anda di project node_modules, hapus dan instal ulang menggunakan perintah ini, npm instal jquery
@ ~ 4.4.3.1
Saya menarik 2 versi jQuery, abaikan yang di atas, semuanya baik-baik saja!
matgargano
Saya berharap saya dapat menjawab pertanyaan ini beberapa kali
curiousMinded
14

Ini terkait dengan jQuery 3.5.0.Ini adalah perubahan besar yang memengaruhi banyak plugin. Mengembalikan sementara ke versi sebelumnya untuk jQuery (like 3.4.1)memperbaiki masalah bagi saya.

atau

Temukan paket Jquery Anda di proyek node_modules, hapus dan instal ulang menggunakan perintah ini

npm install jquery@~3.4.1

Sumber: Isu jQuery # 4665

Sylvernus Akubo
sumber
3

Saya menghapus jQuery dengan yarn remove jquery, dan kemudian diinstal yarn add [email protected]ke downgrade.

Masalahnya adalah 3.5.0 masih ditemukan di file yarn.lock, sehingga kesalahan masih terjadi.

Saya harus menambahkan package.json, di luar "dependencies"bagian:

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

Akhirnya kesalahan itu hilang.

Andrei Erdoss
sumber
3

Saya sudah menggunakan jquery 3.41 tapi saya mendapat masalah setelah memindahkan file proyek saya ke proyek lain sehingga dalam kasus menggunakan jquery 3.41 masih mencoba dan melihat dengan menjalankan perintah,

1) npm menghapus jquery

2) npm instal jquery@~3.4.1

Perintah-perintah ini memecahkan masalah saya.

Hasindu Dahanayake
sumber
2

Buka package.jsondan ganti

"jquery": "^3.4.1",

dengan

"jquery": "3.4.1"

Sumber

xameeramir
sumber
1
Saya memiliki opsi teratas di file package.json saya dan masih mengalami kesalahan. Mengubahnya ke opsi tanpa tanda sisipan dan mengkompilasi ulang aset memperbaikinya untuk saya. Terima kasih!
Oranges13
1
@ Oranges13 Saya sangat senang mengetahui bahwa saya bisa membantu seseorang! Perdamaian!
xameeramir
0

Hapus paket Jquery dari node_modulesfolder.

Kemudian instal ulang menggunakan perintah ini.

npm install jquery@3.5.0
Kmarlon Pereira
sumber