Tôi không chắc lỗi này là gì và liệu nó có ảnh hưởng đến phản ứng không, tuy nhiên điều này sẽ xuất hiện trong bảng điều khiển của tôi:
layout.js:64 Uncaught TypeError: Constr is not a constructor (layout.js line 64)
Tôi không chắc lỗi này là gì và liệu nó có ảnh hưởng đến phản ứng không, tuy nhiên điều này sẽ xuất hiện trong bảng điều khiển của tôi:
layout.js:64 Uncaught TypeError: Constr is not a constructor (layout.js line 64)
Câu trả lời:
Đối với bất kỳ ai cũng có thể gặp phải vấn đề này: Tôi cũng gặp vấn đề tương tự với các thành phần JavaScript tùy chỉnh của mình. Hóa ra một lỗi đánh máy nhỏ trong các tệp JS của tôi đã gây ra sự cố. Thay vì define()
tôi sử dụng require()
trên đầu. Vì vậy, để kết thúc tất cả, đây là bản tóm tắt cho một thành phần JavaScript tùy chỉnh:
define([
'uiComponent'
], function(
uiComponent
) {
"use strict";
/**
* Return the UI Component
*/
return uiComponent.extend({
/**
* Initialization method
*/
initialize: function () {
this._super();
}
});
});
Đây là một lỗi trong JS xác nhận hợp lệ. ( vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
)
Ở đây bạn thấy: //return Component.extend({});
Điều này không bị thiếu vì nó phá vỡ tham số thứ hai của hàm lửa của jquery. Không chắc chắn nếu nó phá vỡ một cái gì đó khác, nhưng kết quả của điều này, là lỗi này và trong một số trường hợp khi các điều khoản và thỏa thuận được đặt thành thủ công, nút đặt hàng sẽ không hoạt động.
Cho đến khi điều này được Magento sửa, bạn có thể tạo ghi đè cho JS này trong thư mục chủ đề của riêng bạn. Để làm điều này, thêm tập tin sau:
app/design/frontend/<ThemeNameSpace>/<Theme>/Magento_CheckoutAgreements/web/js/view/agreement-validation.js
và dán nội dung của vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
nó vào nó. Uncomment trả lại và triển khai lại nội dung tĩnh.
Tôi đã phải đối mặt với cùng một vấn đề. Nguyên nhân của vấn đề tôi đã khai báo cùng một vị trí tệp js đã được sử dụng trong tệp Core.
Ví dụ: tôi đã cố gắng cấu trúc lại các khối tổng số đơn đặt hàng bằng cách sử dụng tệp js tùy chỉnh của mình như,
"components": {
"block-totals": {
"component": "Magento_Checkout/js/summary/totals",
}
}
Nhưng trong cùng một vị trí đã tồn tại totals.js trong magento-checkout / frontend / web / js / Tóm tắt / totals.js.
Sau đó, tôi đã đổi tên tên tập tin như,
"component": "Magento_Checkout/js/summary/showtotals",
Bây giờ tôi không có bất kỳ lỗi nào !! và tổng số đơn đặt hàng của tôi tổng số khối ghi đè.
Đối với tôi, tôi đã sử dụng Magento Js Mixin và yêu cầu mẫu được điều chỉnh hơi khác nhau như được mô tả trong tài liệu Magento tại đây: https://devdocs.magento.com/guides/v2.3/javascript-dev-guide/javascript/js_mixins .html