0

我有一个模态弹出控制器,我在定义如下的页面上动态呈现

<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");被删除,对话框关闭正常,但是,显然没有回调被调用。

没有错误。

4

0 回答 0