Impossibile convertire l'oggetto in un errore di valore primitivo nell'applicazione di reazione?


27

Sto sviluppando una semplice applicazione di avvio con reazione a molla, ma a causa di un problema di GitHub ricrea i file di avvio dell'applicazione tramite IntelliJ e ho installato i moduli del nodo utilizzando i dati di dipendenza del file package.json dell'applicazione precedente.

Se uso una barra di navigazione collassata (barra degli hamburger -> barre sensibili che collassano nella vista mobile) e faccio clic sul pulsante dell'hamburger per vedere i collegamenti di navigazione mi dà l'errore di seguito. Ma tutte quelle cose sono andate bene nell'applicazione precedente.

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

ho iniziato a ricevere questo errore proprio oggi stesso, mi chiedo se sia una stranezza in una nuova versione di qualcosa?
matgargano,

Risposte:


57

Innanzitutto, rimuovere jQuery:

npm remove jquery

e quindi reinstallarlo:

npm install jquery@~3.4.1

Questo mi ha risolto. Passo un'ora intera a chiedermi cosa è successo. :( Grazie mille!
DaveK,

Grazie, è stato lo stesso di quello che ho fatto alla fine per risolvere la questione.
Hasindu Dahanayake,

1
Eseguito l'upgrade, ma vorrei aggiungere che è necessario per riavviare / ricostruire. O npm run devo riavviare e ancora npm run watch.
Veljko Stefanovic,

24

Ho avuto lo stesso problema in un progetto rails 6 che stavo sviluppando. Sto usando bootstrap 4.4.1 e ho avuto lo stesso identico problema con la barra di navigazione collassata: la barra di navigazione collassa ma il pulsante hamburger che appare al collasso non era cliccabile.

La soluzione: eseguire il downgrade di jquery da 3.5.0 a 3.4.1. Per ora non ho esaminato il motivo reale dell'errore.

Per aggiungere ulteriori dettagli, la versione di jquery deve essere aggiornata in base alle package.jsondipendenze e non dimenticare di eseguirla yarn install --check-filesdopo aver fatto ciò per applicare la modifica.


Attualmente sto usando jquery 3.4.1
Hasindu Dahanayake il

FWIW, questo non funziona neanche per me. Stavo usando WordPress che utilizza una vecchia versione 1.x, ho scambiato per 3.4.1 e ancora vedendo il problema. Penso che è legato a qualcosa di nuovo, come ci sono messaggi molto simili entro un'ora passato (vedi stackoverflow.com/questions/61177140/... )
matgargano

Individua il tuo pacchetto Jquery nel progetto node_modules, eliminalo e reinstallalo usando questo comando, npm install jquery@~4.3.1
Sylvernus Akubo

Stavo inserendo 2 versioni di jQuery, ignorando quanto sopra, va tutto bene!
matgargano,

Vorrei poter votare questa risposta più volte
curiousMinded

14

Questo è correlato a jQuery 3.5.0.È un cambiamento decisivo che interessa molti plugin. Il ripristino temporaneo di una versione precedente ha jQuery (like 3.4.1)risolto il problema per me.

o

Individua il tuo pacchetto Jquery nel progetto node_modules, eliminalo e reinstallalo usando questo comando

npm install jquery@~3.4.1

Fonte: jQuery numero 4665


3

Ho rimosso jQuery con yarn remove jquerye quindi installato yarn add jquery@3.4.1per il downgrade.

Il problema era che 3.5.0 era ancora presente nel file thread.lock, quindi l'errore si stava ancora verificando.

Ho dovuto aggiungere in package.json, al di fuori della "dependencies"sezione:

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

Finalmente l'errore era scomparso.


3

Ho già usato jquery 3.41 ma ho riscontrato il problema dopo aver spostato i file del mio progetto in un altro progetto, quindi in caso di utilizzo di jquery 3.41 prova ancora a vedere eseguendo i comandi di,

1) npm rimuove jquery

2) npm installa jquery@~3.4.1

Questi comandi hanno risolto il mio problema.


2

Apri package.jsone sostituisci

"jquery": "^3.4.1",

con

"jquery": "3.4.1"

fonte


1
Avevo l'opzione principale nel mio file package.json e continuavo a riscontrare l'errore. Modificandolo sull'opzione senza il cursore e ricompilando le risorse, è stato risolto per me. Grazie!
Arance 13

1
@ Oranges13 Mi rende così felice sapere che potrei aiutare qualcuno! Pace!
xameeramir,

0

Rimuovere il pacchetto Jquery dalla node_modulescartella.

Quindi reinstallarlo utilizzando questo comando.

npm install jquery@3.5.0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.