Search code examples
blazorblazor-server-siderazor-components

do function after event call back


I try to call a function in child component when i'm in a callback function.

in my child component :

<div class="container">
<h1 class="text-center">DUO BUSINESS</h1><i class="fal @IcoMenu" @onclick="CollapseMenu"></i>

@code{

        [Parameter]
        public EventCallback CollapseMenu { get; set; }

public void Popover()
    {
        Console.WriteLine("test");
    }
}

In my Parent component :

     private void CollapseMenu()
    {
        if (collapseMenu == "vxs-left-side-menu")
        {
            this.collapseMenu = "vxs-left-side-menu vxs-left-side-menu-collapse";
            this.icoMenu = "fa-yin-yang";
        }
        else
        {
            this.collapseMenu = "vxs-left-side-menu";
            this.icoMenu = "fa-times";

------------HERE I WANT TO DO A FUNCTION IN CHILD COMPONENT------------
              Do popoverFunction in child component

        }
    }

Solution

  • OK I find the answer :

    In child component :

    <div class="container">
        <h1 class="text-center">DUO BUSINESS</h1><i class="fal @IcoMenu" @onclick="Popover"></i>
    </div>
    
        @code{
    
            [Parameter]
            public EventCallback CollapseMenu { get; set; }   
    
    
            public void Popover()
            {
                vxsMenuCollapsePopover = new string[5];
                CollapseMenu.InvokeAsync(true);
            }
        }
    

    In Parent component :

    <div class="@collapseMenu">
            <NavMenu CollapseMenu="@CollapseMenu" IcoMenu="@icoMenu"/>
        </div>
    
     private void CollapseMenu()
        {
            if (collapseMenu == "vxs-left-side-menu")
            {
                this.collapseMenu = "vxs-left-side-menu vxs-left-side-menu-collapse";
                this.icoMenu = "fa-yin-yang";
            }
            else
            {
                this.collapseMenu = "vxs-left-side-menu";
                this.icoMenu = "fa-times";
            }
        }
    

    It's working for me now If you have better suggestion tell me, thx !