Magento2がカスタムテーマで「Constrはコンストラクタではありません」エラーを取得する


7

私はこのエラーが何であるか、そしてそれが何かに影響を与えているかどうかはわかりませんが、これは私のコンソールに来ています:

layout.js:64 Uncaught TypeError: Constr is not a constructor (layout.js line 64)

私もまったく同じ問題を抱えています。これについて詳しく教えてもらえますか?
最大

私は同じ問題を抱えています。解決策を得ましたか?
55840

回答:


13

この問題に遭遇する可能性のあるすべての人のために:カスタムJavaScriptコンポーネントにも同じ問題がありました。JSファイルの小さなタイプミスが問題の原因であることがわかりました。代わりに上define()で使用しrequire()ました。まとめると、カスタムJavaScriptコンポーネントのボイラープレートは次のようになります。

define([
  'uiComponent'
], function(
  uiComponent
) {
  "use strict";

  /**
   * Return the UI Component
   */
  return uiComponent.extend({
    /**
     * Initialization method
     */
    initialize: function () {
      this._super();
    }
  });
});

ありがとう、ここも同じです。以前にrequireを使用した非UIコンポーネントコードをコンポーネントに移植したときに発生します。
アレックス

2

これは、合意検証者JSのバグです。(vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js

ここに表示されます://return Component.extend({}); これは、jqueryのfire関数の2番目のパラメーターを壊すため、コメント化しないでください。しかし、それが他の何かを壊すかどうかはわかりませんが、この結果はこのエラーであり、場合によっては、契約条件が手動で設定されている場合、注文ボタンが機能しません。

これがMagentoによって修正されるまで、独自のテーマフォルダーにこのJSのオーバーライドを作成できます。これを行うには、次のファイルを追加します。

app/design/frontend/<ThemeNameSpace>/<Theme>/Magento_CheckoutAgreements/web/js/view/agreement-validation.jsに内容を貼り付けvendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.jsます。リターンのコメントを外して、静的コンテンツを再デプロイします。


1
2.2.4では、その行はコメント化されていませんが、エラーはまだ表示されます。
vaso123

0

私は同じ問題に直面しました。問題の原因私はすでにコアファイルで使用されている同じjsファイルの場所を宣言しました。

たとえば、次のようなカスタムjsファイルを使用して、注文の要約合計ブロックを再構築しようとしました。

"components": {
     "block-totals": {
              "component": "Magento_Checkout/js/summary/totals",                          
                  }
             }

ただし、同じ場所のmagento-checkout / frontend / web / js / summary / totals.jsにはすでにtotals.jsが存在します。

次に、ファイル名を次のように変更しました。

"component": "Magento_Checkout/js/summary/showtotals",

今、私はエラーがありません!! そして、私の注文概要合計ブロックが上書きされます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.