EventCallBack 无法与组件上的 @rendermode.InteractiveServer 一起使用

问题描述 投票:0回答:1

EventCallBack 无法与组件上的 @rendermode.InteractiveServer 一起使用。 OnClick.InvokeAsync() 被调用但不执行。父回调未被调用。

如果 @rendermode InteractiveServer 位于页面上,而不是 EventCallBack 起作用的组件上。

我需要在同一页面上有 InteractiveServer 和 InteractiveWebAssembly 组件。

我正在使用.Net 8

Home.razor

@page "/"

@* This way works *@
@* @rendermode InteractiveServer *@
@* <Button OnClick=@DoOnClick Text="InteractiveServer" /> *@

@* This way does not work *@
<Button @rendermode=InteractiveServer OnClick=@DoOnClick Text="InteractiveServer" />

<p>@HelloString</p>

@code {
  string HelloString { get; set; } = "";

  void DoOnClick()
  {
    HelloString = "Hello"; // Is not being called
  }
}

按钮.剃须刀

<button @onclick=@DoOnClick>@Text</button>

@code {
  [Parameter]
  public EventCallback OnClick { get; set; }

  [Parameter]
  public string Text { get; set; } = "";

  void DoOnClick()
  {
    OnClick.InvokeAsync(); // Is being called
  }
}
asp.net-core events blazor renderer
1个回答
0
投票

找到

App.razor
文件并更改
<Routes>
,如下所示。

 <Routes @rendermode="InteractiveServer" />/>

然后我们就可以解决这个问题。

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.