我需要根据EventCallback<T>
个异步调用的结果来调整子组件,从报告验证摘要中的错误开始.然而,我似乎找不到一种有效的方式来做到这一点,似乎交流完全是单向的,从子元素到父母.
我读到过一些答案,你可以用Func<T1, T2>
代替EventCallback<T>
,但它有一个严重的缺点,就是在需要的时候不打StateHasChanged()
.
[Parameter]
public EventCallback<int> OnAccountEntered { get; set; }
private async Task HandleValidSubmit()
{
try
{
DisableButton = true;
ButtonText = "Please Wait, Validating Account Information";
await OnAccountEntered.InvokeAsync(Model.AccountNumber ?? 0).ConfigureAwait(false);
// here be dragons. how do I get the answer from parent?
}
finally
{
ButtonText = "Request";
DisableButton = false;
}
}
确保父对象和子对象之间双向通信的正确方式是什么?