Không thể chuyển đổi đối tượng thành lỗi giá trị nguyên thủy trong ứng dụng phản ứng?


27

Tôi đang phát triển một ứng dụng khởi động lò xo phản ứng đơn giản, nhưng do sự cố GitHub, tôi đã tạo lại các tệp khởi động ứng dụng của mình bằng IntelliJ và cài đặt các mô-đun nút bằng dữ liệu phụ thuộc của tệp pack.json của ứng dụng trước đó.

Nếu tôi sử dụng thanh điều hướng thu gọn (thanh hamburger -> thanh điều hướng phản ứng bị sập trong chế độ xem trên thiết bị di động) và nhấp vào nút hamburger để xem các liên kết điều hướng, nó sẽ báo lỗi dưới đây. Nhưng tất cả những điều đó đã diễn ra tốt đẹp trong ứng dụng trước.

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

bắt đầu nhận lỗi này ngay hôm nay, tự hỏi liệu có phải là một sự kỳ quặc trong một bản phát hành mới của một cái gì đó?
matgargano

Câu trả lời:


55

Đầu tiên, xóa jQuery:

npm remove jquery

và sau đó cài đặt lại:

npm install jquery@~3.4.1

CÁi này đã sửa nó giúp tôi. Tôi dành cả giờ cho việc tự hỏi chuyện gì đã xảy ra. :( Cảm ơn bạn rất nhiều!
DaveK

Cảm ơn bạn, điều này giống như những gì tôi đã làm cuối cùng để giải quyết vấn đề này.
Hasindu Dahanayake

1
Được nâng cấp, nhưng tôi muốn thêm nó là cần thiết để khởi động lại / xây dựng lại. Hoặc npm run devhoặc khởi động lại và một lần nữa npm run watch.
Veljko Stefanovic

24

Tôi đã có cùng một vấn đề trong một dự án rails 6 tôi đang phát triển. Tôi đang sử dụng bootstrap 4.4.1 và có cùng một vấn đề với thanh điều hướng bị sập của tôi: Thanh điều hướng bị sập nhưng nút hamburger xuất hiện khi sập không thể nhấp được.

Giải pháp: Hạ cấp jquery từ 3.5.0 xuống 3.4.1. Tôi đã không nhìn vào lý do thực sự của lỗi bây giờ.

Để thêm chi tiết, phiên bản jquery nên được cập nhật trong phần package.jsonphụ thuộc và đừng quên chạy yarn install --check-filessau khi bạn thực hiện việc này để thay đổi được áp dụng.


Tôi hiện đang sử dụng jquery 3.4.1
Hasindu Dahanayake

FWIW điều này cũng không làm việc cho tôi. Tôi đang sử dụng WordPress sử dụng một số phiên bản 1.x cũ, tôi đã đổi chỗ cho 3.4.1 và vẫn thấy vấn đề. Tôi nghĩ có liên quan đến một cái gì đó khá mới vì có những bài viết rất giống nhau trong giờ qua (xem stackoverflow.com/questions/61177140/iêu )
matgargano

Xác định vị trí gói Jquery của bạn trong dự án node_modules, xóa nó và cài đặt lại bằng lệnh này, npm cài đặt jquery@~4.3.1
Sylvernus Akubo

Tôi đã kéo theo 2 phiên bản jQuery, bỏ qua những điều trên, tất cả đều tốt!
matgargano

Tôi ước tôi có thể nâng cao câu trả lời này nhiều lần
tò mò Tìm kiếm

14

Điều này có liên quan đến jQuery 3.5.0.Nó là một thay đổi đột phá ảnh hưởng đến nhiều plugin. Tạm thời quay lại phiên bản trước đã jQuery (like 3.4.1)khắc phục sự cố cho tôi.

hoặc là

Xác định vị trí gói Jquery của bạn trong dự án node_modules, xóa nó và cài đặt lại bằng lệnh này

npm install jquery@~3.4.1

Nguồn: Vấn đề jQuery # 4665


3

Tôi đã gỡ bỏ jQuery với yarn remove jquery, và sau đó cài đặt yarn add jquery@3.4.1để hạ cấp.

Vấn đề là 3.5.0 vẫn được tìm thấy trong tệp Sợi.lock, do đó lỗi vẫn xảy ra.

Tôi đã phải thêm vào pack.json, bên ngoài "dependencies"phần:

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

Cuối cùng lỗi đã biến mất.


3

Tôi đã sử dụng jquery 3.41 nhưng tôi gặp sự cố sau khi chuyển các tệp dự án của mình sang dự án khác, vì vậy trong trường hợp sử dụng jquery 3.41 vẫn thử và xem bằng cách chạy các lệnh của,

1) npm loại bỏ jquery

2) cài đặt npm jquery@~3.4.1

Những lệnh này đã giải quyết vấn đề của tôi.


2

Mở package.jsonvà thay thế

"jquery": "^3.4.1",

với

"jquery": "3.4.1"

Nguồn


1
Tôi đã có tùy chọn hàng đầu trong tệp pack.json của mình và vẫn gặp lỗi. Thay đổi nó thành tùy chọn mà không cần dấu mũ và biên dịch lại tài sản đã sửa nó cho tôi. Cảm ơn bạn!
Oranges13

1
@ Oranges13 Thật hạnh phúc khi biết rằng tôi có thể giúp đỡ ai đó! Sự thanh bình!
xameeramir

0

Hủy bỏ gói Jquery khỏi node_modulesthư mục.

Sau đó cài đặt lại bằng lệnh này.

npm install jquery@3.5.0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.