【发布时间】:2021-05-04 18:15:24
【问题描述】:
我需要在子组件中发生onclick事件,在父组件中执行ShowMessage方法,传递message字符串作为参数。以下代码不起作用:
child.razor:
<input type="text" @bind-value="@message" @onclick="OnClickCallback"/>
<button @onclick="ChangePassword">Parent button</button>
@code {
private string message;
[Parameter]
private string Message {get; set;}
[Parameter]
public EventCallback<MouseEventArgs> OnClickCallback {get; set;}
[Parameter]
public EventCallback<string> OnClick { get; set; }
private async Task ChangePassword()
{
await OnClick.InvokeAsync(message);
}
}
parent.razor:
@page "/parent"
<Child @bind-Message="message" OnClickCallback="@ShowMessage"></Child>
<p>@message</p>
@code {
private string message;
private void ShowMessage(MouseEventArgs args, string e)
{
message = e;
}
}
错误:无法在OnClickCallback="@ShowMessage"上从“方法组”转换为“EventCallback”
【问题讨论】:
-
为什么不工作?你试过调试吗?根据调试哪里不行?
-
@Iria - 我添加了错误消息。谢了。
-
@BrianParker - 我不太确定我是否明白了。我需要把它放在哪里?
标签: c# blazor blazor-server-side blazor-webassembly asp.net-blazor