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"
@dynamicComponent
@functions{
BlazorComponent dynamicComponent = Activator.CreateInstance<Components.MyComponent>();
}
Des idées comment faire cela, en ajoutant ou en chargeant des composants dynamiquement?
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();
};
}