如何在主/父组件内刷新 Blazor 子/子项组件?

12

您有一个主组件,在主组件内部有许多子组件。

您想要刷新单个子组件,而不是整个主组件屏幕,这是否可能?


2
您可以通过调用其 StateHasChanged 方法来请求子组件进行刷新。 - agua from mars
@aguafrommars 在 .razor 页面的 @code 部分中,如何引用特定的子组件?是否有 Blazor 版本的 ASP.NET 的 Page.FindControl() 方法? - Tim
4
@Tim,你可以使用 @ref 获取你想要的组件的引用:https://learn.microsoft.com/en-us/aspnet/core/blazor/components?view=aspnetcore-3.1#capture-references-to-components - agua from mars
1个回答

11

是的,这是可能的:

Parent.razor

<Child @ref="_childComponent" />
<button @onclick="@(() => _childComponent.Refresh())">Refresh Child</button>

@code {
    private Child _childComponent;
}

Child.razor

<p>Right now: @DateTime.Now</p>

@code {
    public void Refresh()
    {
        StateHasChanged();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接