【发布时间】:2021-11-14 19:55:56
【问题描述】:
我有一个基本组件PetTemplate 和第二个PetDog,它继承并使用PetTemplate 的模板。 PetTemplate 有一个名为 ToggleDisplay 的方法。我的目标是当我单击 Index 页面上调用 PetDog.ToggleDisplay 方法的按钮并在页面上显示/隐藏 PetDog 详细信息时。
下面示例代码中的“内部”按钮有效,但“外部”按钮无效。如何从页面或父组件中正确调用ToggleDisplay 方法?
Index.razor
@page "/"
<button @onclick="ShowPetDetails">Show Details (Outside)</button>
<PetDog @ref="dog" />
@code {
PetDog dog;
void ShowPetDetails()
{
dog.ToggleDisplay();
}
}
宠物狗剃须刀
@inherits PetTemplate
<PetTemplate Name="Dog">
<div>Someone's best friend!</div>
</PetTemplate>
PetTemplate.razor
<div class="mt-3">
<button @onclick="ToggleDisplay">Show Details (Inside)</button>
<h3>Pet Name: @Name</h3>
<div style="display:@display">
@ChildContent
</div>
</div>
@code {
string display = "none";
[Parameter]
public string Name { get; set; }
[Parameter]
public RenderFragment ChildContent { get; set; }
public void ToggleDisplay()
{
display = display == "none" ? "block" : "none";
StateHasChanged();
}
}
【问题讨论】:
标签: c# blazor blazor-component