Hinzufügen / Laden von Komponenten dynamisch

asp.net-core blazor c#

Frage

Gute Blazor Leute, ich brauche deine Hilfe.

Beim Hinzufügen von Komponenten zu einer Seite führen Sie normalerweise Folgendes aus:

@page "/somepage"

<MyComponent></MyComponent>

Ich möchte die Komponenten dynamisch hinzufügen, etwa so:

@page "/somepage"

<MyComponent></MyComponent>

Irgendwelche Ideen, wie man das macht, Komponenten dynamisch hinzufügt oder lädt?

Akzeptierte Antwort

Dafür gibt es zur Zeit keine APIs auf hohem Niveau. Sie können Low-Level-APIs wie hier erläutert verwenden: https://github.com/aspnet/Blazor/issues/723

In Ihrem Fall würde dies bedeuten:

@page "/somepage"

@dynamicComponent()

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum