在 Blazor (.razor) 组件中添加多个组件

Posted

技术标签:

【中文标题】在 Blazor (.razor) 组件中添加多个组件【英文标题】:Adding multiple components in Blazor (.razor) component 【发布时间】:2021-11-23 02:27:37 【问题描述】:

如何在 Razor 中实现这一点? 渲染一(1)个片段(Panel)很简单,但是如何定义这些 i 代码呢?

我可以创建一个呈现面板的类,但它不能具有 Parameter 属性。 不同的面板,例如。 Layout.GridView 有它自己的特点。

    [Parameter]
    public RenderFragment Panel  get; set; 
    <GroupPanel PanelType="PanelType.Display">
        <Panel Layout="Layout.GridView"></Panel>
        <Panel Layout="Layout.ListView"></Panel>
        <Panel Layout="Layout.DisplayView"></Panel>
    </GroupPanel>

【问题讨论】:

你的问题没有包含足够的信息来确定地回答这个问题,除了做出一些疯狂的猜测。 &lt;GroupPanel&gt; 是什么?您引用的代码是否在同一个组件中?如果@Mayur Ekbote 的回答回答了您的问题,请忽略此问题,否则请更新问题的更多细节。 【参考方案1】:

RenderFragment 本质上是 blazor 组件的占位符。它可以显示多个组件。

GroupPanel.razor

  <PanelContainer PanelType="PanelType.Display">
      @Panels
   </PanelContainer >

@code
   [Parameter]
   public RenderFragment Panels get;set;
   // other parameters like PanelType

Index.razor

<GroupPanel PanelType="PanelType.Display">
     <Panels>
        <Panel Layout="Layout.GridView"></Panel>
        <Panel Layout="Layout.ListView"></Panel>
        <Panel Layout="Layout.DisplayView"></Panel>
     <Panels>
</GroupPanel>

【讨论】:

以上是关于在 Blazor (.razor) 组件中添加多个组件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用同一 Blazor 组件的多个实例

在组件中导入 javascript 文件并在多个页面上使用时出现 Blazor JSRuntime 问题

将服务器端 Blazor 添加到现有 MVC Core 应用程序

Blazor 组件之间使用 EventCallback 进行通信

在 Blazor 中自动刷新组件

Blazor WASM - 分成多个组件 (MudBlazor)