3

好 Blazor 人,我需要你的帮助。

今天在向页面添加组件时,您通常会执行以下操作:

@page "/somepage"

<MyComponent></MyComponent>

我想要做的是动态添加组件,如下所示:

@page "/somepage"

@dynamicComponent

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

任何想法如何做到这一点,动态添加或加载组件?

4

2 回答 2

2

目前没有用于此的高级 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();
    };
}
于 2018-05-05T12:10:34.647 回答
0

更新,因为该线程在 Google 上的排名很高...

看看 ASP.NET Core Blazor 和 MVC 6.0 中的新 DynamicComponent 控件。(将在 .NET 6.0 中发布,目前提供预览版):

https://www.daveabrock.com/2021/04/08/blazor-dynamic-component/

于 2021-07-12T16:31:58.357 回答