Ajouter / charger des composants dynamiquement

asp.net-core blazor c#

Question

Bon peuple Blazor, j'ai besoin de votre aide.

Aujourd'hui, lorsque vous ajoutez des composants à une page, vous procédez normalement de la manière suivante:

@page "/somepage"

<MyComponent></MyComponent>

Ce que je veux faire, c'est ajouter les composants dynamiquement, quelque chose comme ceci:

@page "/somepage"

<MyComponent></MyComponent>

Des idées comment faire cela, en ajoutant ou en chargeant des composants dynamiquement?

Réponse acceptée

Il n'y a pas d'API de haut niveau pour cela pour le moment. Vous pouvez utiliser des API de bas niveau, comme expliqué ici: https://github.com/aspnet/Blazor/issues/723

Dans votre cas, cela se traduirait par:

@page "/somepage"

@dynamicComponent()

@functions{
  RenderFragment dynamicComponent() => builder =>
    {
        builder.OpenComponent(0, typeof(SurveyPrompt));
        builder.AddAttribute(1, "Title", "Some title");
        builder.CloseComponent();
    };
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi