我有一个模态弹出控制器,我在定义如下的页面上动态呈现
<MatDialog @bind-IsOpen="@Open">
<MatDialogTitle>@Title</MatDialogTitle>
<MatDialogContent>
@Content
</MatDialogContent>
<MatDialogActions>
<MatButton OnClick="@Yes">Yes</MatButton>
<MatButton OnClick="@(e => { Open = false; })">No</MatButton>
</MatDialogActions>
</MatDialog>
@code {
[Parameter] public bool Open { get; set; }
[Parameter] public string Title { get; set; }
[Parameter] public string Content { get; set; }
[Parameter] public EventCallback<string> YesCallback { get; set; }
void Yes()
{
Open = false;
YesCallback.InvokeAsync("deleted");
}
}
它只是意味着关闭弹出窗口并调用传入的回调函数。问题是如果YesCallback.InvokeAsync("deleted");
被称为对话框永远不会关闭。回调被执行,但对话框保持打开状态。如果YesCallback.InvokeAsync("deleted");
被删除,对话框关闭正常,但是,显然没有回调被调用。
没有错误。