如何在 Blazor 服务器端访问父组件?

Mel*_* NG 3 .net-core asp.net-core blazor

我正在使用 blazor 的服务器端。

这是一个名为 Child 的子组件:

<div class="Child">
    <img @OnClick="ShowFullImage" src="/img/aaa.jpg"/>
</div>
@code{
   private void ShowFullImage(){}
}
Run Code Online (Sandbox Code Playgroud)

这是一个父组件:

<Child></Child>
<img id="FullImage"/>
Run Code Online (Sandbox Code Playgroud)

子组件即将显示缩略图。当用户单击缩略图时(仅img在子组件中),完整图像将显示在img名为 FullImage 的父组件中。

现在的问题是,虽然我可以onlick在子组件中添加一个函数,但我还不知道如何访问它的父组件。

Ven*_*sky 5

我认为你正在寻找的是 EventCallback

// Child
<div class="Child">
    <img @onclick="ShowFullImage" src="/img/aaa.jpg"/>
</div>

@code{
   [Parameter]
   public EventCallback ShowFullImage { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
// Parent
<Child ShowFullImage="@ShowFullImage" />

@code{
    public void ShowFullImage()
    {
        // do what you want
    }
}
Run Code Online (Sandbox Code Playgroud)