如何通过渲染树构建器添加导航链接事件处理程序?

How to add navlink event hander by render tree builder?

有人可以帮我在 NavLink 上添加事件处理程序吗? HTML我想制作:

  <NavLink class="nav-link" href="/" @onclick="()=>GetIsClicked("home")">
      <span class="oi oi-home" aria-hidden="true">Home</span>
  </NavLink>

@code{
    public void GetIsClicked(string str) {
    
  }
 }

RenderTreeBuilder 代码:

 protected override void BuildRenderTree(RenderTreeBuilder builder) {
    builder.OpenComponent<NavLink>(1);
    builder.AddAttribute(2, "class", "nav-link");
    builder.AddAttribute(3, "href", "/");
    // here I want to add attribute for @onclick="()=>GetIsClicked("home")"
    builder.AddAttribute(4, "ChildContent", (RenderFragment)((builder2) => {
                builder2.OpenElement(5, "span");
                builder2.AddAttribute(6, "aria-hidden", "true");
                builder2.AddAttribute(7, "class", "oi oi-home");
                builder2.CloseElement();
                builder2.AddContent(8, "Home");
    }));
    builder.CloseComponent();
    builder.CloseElement();
    builder.CloseElement();
 }

提前致谢。 俊

你可以这样做:

 __builder.OpenComponent<Microsoft.AspNetCore.Components.Routing.NavLink>(1);
            __builder.AddAttribute(2, "onclick", Microsoft.AspNetCore.Components.EventCallback.Factory.Create<Microsoft.AspNetCore.Components.Web.MouseEventArgs>(this, ()=>GetIsClicked("home")));