我为我的项目创建了一个简单的 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
,而不显示按钮!即使当我检查网页时,事情看起来也不对劲。
我尝试更改一些元素并添加一些简单的文本以查看它是否显示,但它不起作用。
您的代码中存在不一致之处。
组件中大小写很重要。组件必须以大写字母开头,因此
collapsiblemenu
不是您的组件名称,collapsiblecontent
也不是渲染片段的名称。
它应该看起来更像这样:
<CollapsibleMenu ....>
<CollapsibleContent>
....
</CollapsibleContent>
</CollapsibleMenu>
您当前看到的只是未知标签的渲染。