Ich bin nicht sicher, was dieser Fehler ist und ob er etwas beeinflusst, aber dies kommt in meine Konsole:
layout.js:64 Uncaught TypeError: Constr is not a constructor (layout.js line 64)
Ich bin nicht sicher, was dieser Fehler ist und ob er etwas beeinflusst, aber dies kommt in meine Konsole:
layout.js:64 Uncaught TypeError: Constr is not a constructor (layout.js line 64)
Antworten:
Für alle, die ebenfalls auf dieses Problem stoßen könnten: Ich hatte das gleiche Problem mit meinen benutzerdefinierten JavaScript-Komponenten. Es stellte sich heraus, dass ein kleiner Tippfehler in meinen JS-Dateien das Problem verursachte. Anstelle von define()
ich require()
oben verwendet. Zum Abschluss hier ein Boilerplate für eine benutzerdefinierte JavaScript-Komponente:
define([
'uiComponent'
], function(
uiComponent
) {
"use strict";
/**
* Return the UI Component
*/
return uiComponent.extend({
/**
* Initialization method
*/
initialize: function () {
this._super();
}
});
});
Dies ist ein Fehler im Agreement-Validator JS. ( vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
)
Hier sehen Sie: //return Component.extend({});
Dies sollte nicht kommentiert werden, da es den zweiten Parameter der Feuerfunktion von jquery unterbricht. Ich bin mir nicht sicher, ob etwas anderes kaputt geht, aber das Ergebnis ist dieser Fehler. In einigen Fällen funktioniert die Bestellschaltfläche nicht, wenn die Bedingungen und Vereinbarungen manuell festgelegt werden.
Bis dies von Magento behoben wurde, können Sie eine Überschreibung für diese JS in Ihrem eigenen Themenordner erstellen. Fügen Sie dazu die folgende Datei hinzu:
app/design/frontend/<ThemeNameSpace>/<Theme>/Magento_CheckoutAgreements/web/js/view/agreement-validation.js
und fügen Sie den Inhalt ein vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
. Kommentieren Sie die Rückgabe aus und stellen Sie den statischen Inhalt erneut bereit.
Ich habe das gleiche Problem konfrontiert. Die Ursache des Problems Ich habe den gleichen Speicherort der js-Datei angegeben, der bereits in der Core-Datei verwendet wird.
Zum Beispiel habe ich versucht, die Gesamtblöcke der Auftragszusammenfassung mithilfe meiner benutzerdefinierten js-Datei wie folgt neu zu strukturieren:
"components": {
"block-totals": {
"component": "Magento_Checkout/js/summary/totals",
}
}
Aber an derselben Stelle gibt es bereits eine totals.js in magento-checkout / frontend / web / js / summary / totals.js.
Dann habe ich den Dateinamen wie folgt umbenannt:
"component": "Magento_Checkout/js/summary/showtotals",
Jetzt habe ich keine Fehler !! und meine Auftragsübersicht Summenblock überschrieben.
Für mich verwendete ich ein Magento Js Mixin und musste die Vorlage etwas anders anpassen, wie in den Magento-Dokumenten hier beschrieben: https://devdocs.magento.com/guides/v2.3/javascript-dev-guide/javascript/js_mixins .html