ম্যাজেন্টো 2 স্টোর স্যুইচারের ত্রুটি "বিভাগ-কনফিগারেশন.জেএস" তে আনকচড টাইপ এরিয়ার: অপরিজ্ঞাত (…) এর সম্পত্তি '*' পড়তে পারে না


12

আমি আমার কাস্টম থিমটিতে একটি কাস্টম স্টোর স্যুইচার বাস্তবায়ন করছি।

ব্লক টেমপ্লেটটি নিম্নরূপ:

<?php if (count($block->getStores())>1): ?>
    <?php $id = $block->getIdModifier() ? '-' . $block->getIdModifier() : ''?>

    <span><?php echo $block->escapeHtml($block->getStoreName()) ?></span>

    <span>/</span>

    <?php foreach ($block->getStores() as $_lang): ?>
        <?php if ($_lang->getId() != $block->getCurrentStoreId()): ?>
            <span class="view-<?php echo $block->escapeHtml($_lang->getCode()); ?> switcher-option">
                <a href="#" data-post='<?php /* @escapeNotVerified */ echo $block->getTargetStorePostData($_lang); ?>'>
                    <?php echo $block->escapeHtml($_lang->getName()) ?>
                </a>
            </span>
        <?php endif; ?>
    <?php endforeach; ?>

<?php endif; ?>

নতুন স্টোরের লিঙ্কটি সঠিকভাবে প্রদর্শিত হয়েছে সুতরাং আমি অনুমান করি যে এক্সএমএল স্টাফ ঠিক আছে, তবে ক্লিকের পরে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

বিভাগ-config.js: 33 অপরিবর্তিত প্রকারের ত্রুটি: অপরিজ্ঞাত (…) এর সম্পত্তি '*' পড়তে পারে না

উত্পন্ন উত্পন্ন htmlদেখতে নীচের মত:

<span class="view-it switcher-option">
  <a href="#" data-post="{"action":"http:\/\/test.mysite.eu\/stores\/store\/switch\/","data":{"___store":"it","uenc":"aHR0cDovL3Rlc3QuZnJhZ2lhY29tb21pbGFuby5ldS8,"}}">
    It
  </a>
</span>

আপনি কি কমান্ড মোতায়েন করেছেন এবং ভার ফোল্ডারটি সরিয়েছেন?
রাকেশ জেসাদিয়া

নাপ এক্সডি আমি এটি করব এবং ফলোআপ করব
ডেভিডেজেজ

আমি কেবল sudo php bin/magento setup:static-content:deployডব্লু / ও কোনও ভাগ্য দৌড়েছি । আমি কেন varফোল্ডারটি সরিয়ে ফেলব ? আমি ঠিক কি অপসারণ করা উচিত?
ডেভিডেজেজ

আপনাকে var ফোল্ডারের সমস্ত সামগ্রী মুছে ফেলতে হবে
রাকেশ জেসাদিয়া

1
@ ডেভিডেজেজ আপনি কি সমাধান পেয়েছেন?
মোহাম্মদ মুজাসসাম

উত্তর:


14

আমার একই সমস্যা ছিল এবং আমি জানতে পারি যে থিমটিতে কাস্টমাইজেশনের কারণে এই দুটি ব্লক যেখানে আর ডাকে না।

দুটি <referenceContainer name="content">ব্লকই প্রতি বিক্রেতার / ম্যাজেন্টো / মডিউল-গ্রাহক / ভিউ / ফ্রন্টএন্ড / লেআউট / ডিফল্ট.এক্সএমএল হিসাবে ডিফল্ট হিসাবে যুক্ত হয় ।

আপনার লেআউট.এক্সএমএলগুলিতে এই ব্লকগুলি পুনরায় যুক্ত করার চেষ্টা করুন:

<block name="customer.section.config" class="Magento\Customer\Block\SectionConfig"
    template="Magento_Customer::js/section-config.phtml"/>
<block name="customer.customer.data"
    class="Magento\Customer\Block\CustomerData"
    template="Magento_Customer::js/customer-data.phtml"/>

আমার একই সমস্যা আছে তবে ব্লকগুলি রেন্ডার্ড হয়। আমি অনুমান করি কারণ এটি কার্ট পুনরায় লোড পদ্ধতিতে কল করার সময় আমি একটি প্রয়োজনীয়জেএস পদ্ধতিতে আছি তবে ব্লকটি রেন্ডার হওয়ার আগে জেএস কার্যকর করা হবে। আমি এড়াতে কোনও জেএস মডিউলের উপর নির্ভর করতে পারি?
বিপিওস

1
ঠিক এই একই সমস্যাটি ছিল .. github.com/SnowdogApps/magento2- থিম-blank-sass ব্যবহার করার সময় (ম্যাজেন্টো ২.২..6)। উপরের দুটি ব্লক যুক্ত করা সমস্যার সমাধান করেছে। ধন্যবাদ
জিওলিয়ানো সুলিত

5

আমাদের প্রকল্পে আমরা section-config.jsপদ্ধতিতে ফাইলটিতে এটি স্থির করেছিলাম getAffectedSections(যেখানে আমাদের ত্রুটি ছিল।
আমরা শেষ লাইনটি প্রতিস্থাপন করেছি:

return _.union(_.toArray(actions), _.toArray(sections['*']));

নিম্নলিখিত এক দ্বারা:

return (sections && sections.length > 0) ? _.union(_.toArray(actions), _.toArray(sections['*'])) : {};

কোনও বিভাগ প্রভাবিত না হলে আসলে একটি খালি অ্যারে প্রদান করতে To


আপনার সমাধান ভাল কাজ করে?
জারেড চু

1
হ্যাঁ এটি কার্যনির্বাহী কাজ ছিল, কিন্তু আইআইআরসি, আমাদের ইস্যুটির আসল মূলটি ছিল শেষ পর্যন্ত জেএস এপিআইর সামান্য অপব্যবহার। এটি এই সংশোধনটিকে অপ্রাসঙ্গিক করে তোলে না, কোডটি চলতে থাকে এবং এখানে তীব্র ত্রুটির ক্ষেত্রে নয়, এটি থামবে না তা নিশ্চিত করার জন্য এটি এখনও সুরক্ষা।
ফ্লিন্থ

1
ধন্যবাদ, এটি কাজ করছে ..
রবি সোনি

এটা আমার জন্যও কাজ করছে। তবে কিছু বিভাগে যখন আমি স্টোর ভিউ পরিবর্তন করি, স্টোর ভিউ পরিবর্তিত হওয়ার পরে আমি অবৈধ ফর্ম কীটি পাই। দয়া করে পৃষ্ঠাটি রিফ্রেশ করুন। যদিও কোনও রূপ নেই .... আমি বিভ্রান্ত
জিজি

0

একই সমস্যা জুড়ে দৌড়ে যদিও customer.section.configএবং customer.customer.dataসঠিকভাবে পৃষ্ঠাতে লোড করা হয়।

আমার ক্ষেত্রে তবে এটি ঘটেছিল কারণ একটি এক্সটেনশান খুব শীঘ্রই একটি বিভাগ-পুনরায় লোড ট্রিগার করার চেষ্টা করেছিল (বিভাগ-config.js সঠিক কনফিগারেশনে লোড হওয়ার আগে)।

getAffectedSectionsবিভাগ-config.js এর একটি ব্রেকপয়েন্ট যুক্ত করে এবং ইউআরএল ভেরিয়েবলটি পরীক্ষা করে এটি সমাধান করার জন্য পরিচালিত । এরপরে এক্সটেনশান জেএসটি ক্রেডিট.সিশন.কমফিগ ব্লকের পরে লোড করতে সরানো হয়েছে:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <move element="extension.js.block" destination="content" after="customer.section.config"/> 
    </body>
</page>

0

আমাদের ক্ষেত্রে এটি একটি ডিফল্ট টেম্পলেটটিতে কোডের একটি বিট ছিল যা গ্রাহক-ডেটা.জেএস ফাইলটি ইতিমধ্যে সাফল্যের পৃষ্ঠায় ডাকা হওয়ার পরে লোড করে চলেছিল।

আমরা ফাইলটি পেয়েছি: vendor/magento/module-checkout/view/frontend/templates/success.phtml

এই কোডটি লোড করা হচ্ছে:

<script>
    require([
        'Magento_Customer/js/customer-data'
    ], function (customerData) {
        var sections = ['cart'];
        customerData.invalidate(sections);
        customerData.reload(sections, true);
    });
</script>

এই কোডটি সরিয়ে ফেলা এটি ঠিক করে দিয়েছে, যা আমরা আমাদের থিম টেম্পলেট ডিরেক্টরিতে এই ফাইলটির একটি অনুলিপি তৈরি করে এবং আপত্তিকর কোড স্নিপেট সরিয়ে দিয়েছিলাম।

ত্রুটিটি কোথায় ঘটছে তা খুঁজে পেতে আপনি Chrome ডিভাইস ব্যবহার করতে পারেন এবং তারপরে আপনার স্থানীয় দেবের সেই ফাইলটিতে console.trace();কনসোলে ত্রুটিটি ফেলে দেওয়া ফাংশনটি কী বলছে তা প্রতিষ্ঠিত করার জন্য একটি কল যুক্ত করুন । আপনি যেখানে ভুলভাবে জিনিস লোড করছেন সেখানে চেইনটি অনুসরণ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.