Blazor 组件仅显示 RenderFragment 参数

问题描述 投票:0回答:1

我为我的项目创建了一个简单的 Blazor 组件,顶部有一个按钮,还有一个条件渲染,我在其中传递 RenderFragment 类型。这是组件。

<div class="">
    <button class="btn btn-link w-100" @onclick="Toggle">
        <b>GroupTitle</b>
    </button>
    @if (!ShowContent)
    {
        <div>
            @CollapsibleContent
        </div>
    }
</div>

@code {
    [Parameter] 
    public string? GroupTitle { get; set; }
    [Parameter] 
    public RenderFragment CollapsibleContent { get; set; }

    public bool ShowContent { get; set; } = false;

    public void Toggle() {
        ShowContent = !ShowContent;
    }
}

我的问题是只显示

@CollapsibleContent
,而不显示按钮!即使当我检查网页时,事情看起来也不对劲。 Inspected Content on Web Page

我尝试更改一些元素并添加一些简单的文本以查看它是否显示,但它不起作用。

c# blazor
1个回答
0
投票

您的代码中存在不一致之处。

组件中大小写很重要。组件必须以大写字母开头,因此

collapsiblemenu
不是您的组件名称,
collapsiblecontent
也不是渲染片段的名称。

它应该看起来更像这样:

<CollapsibleMenu ....>
  <CollapsibleContent>
     ....
  </CollapsibleContent>
</CollapsibleMenu>

您当前看到的只是未知标签的渲染。

© www.soinside.com 2019 - 2024. All rights reserved.