Saltar al contenido

¿Cómo llamar al método del componente secundario desde el componente principal en blazor?

La guía paso a paso o código que encontrarás en este artículo es la resolución más sencilla y válida que hallamos a tus dudas o problema.

Solución:

Primero debe capturar una referencia de su componente secundario:


Luego puede usar esta referencia para llamar a métodos de componentes secundarios como lo hace en su código.



@code
    ChildComponent child; 

    void ShowModal()
        child.Show();
    

El espacio de nombres de su componente debe agregarse mediante un uso en la página o en _Imports.razor. Si su componente está en la subcarpeta Componentes/ChildComponent.razor entonces su espacio de nombres es YourAppNameSpace.Components

@using MyBlazorApp.Components

lee el código

Aquí hay un artículo que acabo de publicar sobre el tema usando Interfaces:

https://datajugglerblazor.blogspot.com/2020/01/how-to-use-interfaces-to-communicate.html

En este ejemplo, la página de índice es un objeto IBlazorComponentParent.

En el componente de inicio de sesión, la parte interesante es establecer la propiedad Parent, simplemente configura Parent=this:

ingrese la descripción de la imagen aquí

La forma en que funciona es que el establecedor de la propiedad principal en el componente de inicio de sesión llama al método de registro en el elemento principal:

[Parameter]
public IBlazorComponentParent Parent

    get  return parent; 
    set 
     
        // set the parent
        parent = value;

        // if the value for HasParent is true
        if (HasParent)
        
            // Register with the parent to receive messages from the parent
            Parent.Register(this);
        
    

Luego, en el componente o página principal, el método de registro almacena la referencia al componente:

public void Register(IBlazorComponent component)

    // If the component object and Children collection both exist
    if (NullHelper.Exists(component, Children))
    
        // If this is the Login component
        if (component.Name == "Login")
        
            // Set the Login control
            this.Login = component as Login;
        

        // add this child
        Children.Add(component);
    

En este punto, el padre y la página de inicio de sesión pueden comunicarse entre sí, ya que ambos contienen un método ReceiveData donde puede enviar mensajes.

Reseñas y calificaciones

No se te olvide dar recomendación a este artículo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *