<referenceBlock name = “header.container” remove = “true” /> remove a funcionalidade de minicart

Nov 12 2020

Eu adicionei <referenceBlock name="header.container" remove="true" />aos meus temas default.xmle, em vez disso, fui substituído por:

<referenceContainer name="page.wrapper">
    <block  class="Magento\Framework\View\Element\Template" 
            name="top.header" 
            template="Magento_Theme::html/custom_header.phtml" 
            before="header.container"
    />
</referenceContainer>

Mas, ao fazer isso, perco toda a funcionalidade do minicart. O JS não é adicionado. Isso é um problema para mim porque quando tento obter o total do carrinho assim:

<div data-bind="scope: 'minicart_counter'">
    <span data-bind="html: getCartParamUnsanitizedHtml('summary_count')"></span>
</div>

<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Ui/js/core/app": {
                "components": {
                    "minicart_counter": {
                        "component": "Magento_Checkout/js/view/minicart"
                    }
                }
            }
        }
    }
</script>

Recebo um erro:

console-output-handler.js:34 [2020-11-12 10:34:54] [ERROR] Failed to load the 
"Magento_Checkout/js/view/minicart" component.

Mas se eu deixar o header.containervisível com <referenceBlock name="header.container" remove="false" />meu cabeçalho personalizado mostra a quantidade total do carrinho ... exceto que agora tenho dois cabeçalhos sendo exibidos (o padrão e o meu personalizado).

Lutei com isso por horas, sem sucesso. o que estou perdendo?

Respostas

2 NSwanson7 Nov 18 2020 at 05:10

Tenho quase certeza de que a minicarte está aninhada dentro do header.containerbloco. Então você vai querer encontrar o bloco ou contêiner exato dentro dele header.containere realizar sua customização nele .