Добавить / загрузить компоненты динамически - PullRequest
0 голосов
/ 05 мая 2018

Добрые люди, Блазор, мне нужна ваша помощь.

Сегодня, добавляя компоненты на страницу, вы обычно делаете что-то вроде этого:

@page "/somepage"

<MyComponent></MyComponent>

Что я хочу сделать, это добавить компоненты динамически, примерно так:

@page "/somepage"

@dynamicComponent

@functions{
 BlazorComponent dynamicComponent = Activator.CreateInstance<Components.MyComponent>();
}

Есть идеи, как это сделать, добавить или загрузить компоненты динамически?

1 Ответ

0 голосов
/ 05 мая 2018

На данный момент нет высокоуровневых API для этого. Вы можете использовать API низкого уровня, как описано здесь: https://github.com/aspnet/Blazor/issues/723

В вашем случае это будет означать:

@page "/somepage"

@dynamicComponent()

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